首页 > 解决方案 > 实体框架上的 Min DateTime 可以返回 null,所以我使用的是 DateTime?保值

问题描述

基本上我有以下声明失败:

DateTime? mindate = db.Table.Min(x=>x.DateCreated && x.NonZeroValue == 0);

这是因为 EF6 正在尝试序列化 DBNull -> DateTime 而不是 DateTime?。

我还尝试在 Min 上明确指定类型:

DateTime? mindate = db.Table.Min<DateTime?>(x=>x.DateCreated && x.NonZeroValue == 0);

然而,这也失败了......

那么......如何使用 EF6 获得最小日期时间值?

标签: c#entity-framework-6

解决方案


尝试这样的事情:

DateTime? mindate = db.Table
    .Where(x => x.DateCreated != null && x.NonZeroValue == 0)
    .Select(x => x.DateCreated)
    .OrderBy(d => d)
    .FirstOrDefault();

推荐阅读