0

我正在尝试查找我知道数据库中存在的记录。使用此查询搜索它时,什么也找不到。

List<OrganizationALE> ales =
                _ctx.OrganizationALEs.Where(c => c.OrganizationId.Equals(organizationId) && c.LastModified.Equals(modified) && c.StartDate.Equals(start)).ToList();

但是,当我使用此查询进行搜索时,使用 watch 的结果中显然存在。 在此处输入图像描述

如果我尝试在下一行使用

var found = ales.First(a => a.LastModified == modified);

我得到一个例外说Sequence contains no matching element

4

1 回答 1

2

我敢打赌,这是因为modified和/或start包含在数据库中(在 SQL Server 中?)中以不同精度存储的毫秒数,因此数据库datetime中的比较失败。

可能的解决方案在这里(第二点和第三点适用于您的情况)。基本上提供不太精确DateTime的值(截断毫秒)或datetime2(7)在 SQL Server 中使用或避免对值使用相等比较DateTime并使用>=and<=代替。

于 2013-09-09T20:30:09.403 回答