Linq找不到那里的匹配记录

时间:2013-09-09 20:20:54

标签: c# asp.net-mvc-3 linq entity-framework-4

我正在尝试查找我知道存在于数据库中的记录。使用此查询搜索时,找不到任何内容。

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

但是当我使用这个查询进行搜索时,结果显然是使用了watch。 enter image description here

如果我尝试使用

将它拉到下一行

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

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

1 个答案:

答案 0 :(得分:2)

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

可能的解决方案是here(第二点和第三点适用于您的情况)。基本上提供不太精确的DateTime值(切断毫秒)或在SQL Server中使用datetime2(7)或避免使用DateTime值的等式比较并使用>=和{{1}而不是。