LINQ 查询总是返回 Null

问题描述

我是 LINQ 新手,但遇到了问题。

我在两个不同的 dbContext(userContext 和 mailContext)中有两个表。将此数据添加到 UserMail 表后,我想从 UserAccount 表中选择一部分数据。 UserAccount 表有很多列,UserMail 表有 4 列(CreatedDate、UserAccountId、UserType、ItemCount)

选择代码

 var selectedUsers = _userContext.UserAccount
        .Where(x=>x.Created == new DateTime(2021,02,17))
        .Select(x => new UserMail()
        {
            CreatedDate = x.Created,UserAccountId = x.AccountId,UserType = x.UserType,ItemCount = (int?)x.ItemCount,}).ToList();

查询返回null,selectedUsers的数量=0。我从 sql 中检查,一些数据退出,我是否错过了查询中的一点?

实际上,我需要按 AccountId 和 CreatedDate 分组的 ItemCount 的总和,但首先,我想获得此查询的结果。

解决方法

这意味着您无法满足 where 条件,因为很可能 小时/分钟/秒 部分彼此不相等。下面呢?

var selectedUsers = _userContext.UserAccount
        .Where(x=>x.Created.Date == new DateTime(2021,02,17).Date)
        // new DateTime(2021,17) could be used simply but the default
        // behavior may be changed in future.
        .Select(x => new UserMail()
        {
            CreatedDate = x.Created,UserAccountId = x.AccountId,UserType = x.UserType,ItemCount = (int?)x.ItemCount,}).ToList();