我知道此错误非常常见,但我无法使用一种数据和DateTime
类型处理错误。
这是我的LINQ:
var lastDate = (
from t in context.table select t.CreatedOn
).Max();
我需要的是获取最后一行的DateTime
(CreatedOn
)字段。
事情就是崩溃,因为表是空的,我无法在catch异常之前处理null。使用数据可以。
更新:
预期的结果是" null"如果日期时间不能得到。
通过Pikoh评论,我可以做到,但现在我有一个带有条件的linq的相同错误(其中)
lastDateWithCriteria= (
from t in context.table
where criteria == "value"
select t.CreatedOn).Max();
}
答案 0 :(得分:5)
你可以做的一件事是......
var lastDate = (
from t in context.table select (DateTime?)t.CreatedOn
).Max();
通过此演员,您可以告诉您的代码,CreatedOn字段现在可以为空。
如果您愿意,您甚至可以在值为空时传递默认值...
var lastDate = (
from t in context.table select (DateTime?)t.CreatedOn
).Max() ?? DateTime.Now;
我希望有所帮助。
答案 1 :(得分:1)
采取不同的方法:
var lastRow = (
from t in context.table
orderby t.CreatedOn descending
select new { t.CreatedOn }
).FirstOrDefault();
if (lastRow != null)
Console.WriteLine(lastRow.CreatedOn)
它创建一个仅包含日期的匿名对象。因此,它将与空结果一起使用。