我不明白 linq-to-sql 错误似乎涉及 linq to sql 如何“在后台”工作。
我有一个 linq to sql 查询来查找日期范围内的值。查询的所有字段在基础数据库中都没有空值。如果开始日期和结束日期相隔不到 48 小时,则查询返回错误,可为空的对象必须有一个值。
Dim startDate As Date = New Date(2013, 1, 5, 0, 0, 1)
Dim endDate As Date = New Date(2013, 1, 6, 23, 59, 59) //date interval less than 48 hours
Dim count As Integer = (From l In myDB.myTable Where l.LabName = labToCheck And l.SuccessfulImport = True And l.DateProcessed > startDate And l.DateProcessed < endDate Select l.Epi).Sum //Nullable object must have a value.
另一方面,当日期相隔超过 48 小时时(在下面的示例中,第二行不同),它不会抛出错误:
Dim startDate As Date = New Date(2013, 1, 5, 0, 0, 1)
Dim endDate As Date = New Date(2013, 1, 7, 23, 59, 59) //date interval more than 48 hours
Dim count As Integer = (From l In myDB.myTable Where l.LabName = labToCheck And l.SuccessfulImport = True And l.DateProcessed > startDate And l.DateProcessed < endDate Select l.Epi).Sum
这是怎么回事?LINQ to SQL 是否忽略时间值?无论关联的时间值如何,2013 年 1 月 5 日数据库中的所有日期时间是否均等?这是我对这个错误的解释,因为如果 linq to sql 忽略时间值,则不会有大于 1/5/13 和小于 1/6/13 的可能值,因此生成消息:可为空的对象必须有错误.
这是怎么回事?