EF实体结果返回的列在数据库中不为空

本文关键字:数据库 实体 结果 返回 EF | 更新日期: 2023-09-27 18:10:38

从数据库中提取数据时得到一个奇怪的结果。在一种情况下,我有一个datetime字段,它在数据库中不为空,并且有一个有效的日期。但是当EF返回记录时,它返回null。

如果我使用与EF相同的sql语句并在SSMS中运行它,它将返回正确的值。

我认为这是因为它已经缓存了该记录,并返回缓存的版本…这可能吗?如何强制它从数据库中刷新?

下面是我的代码,提取记录:

 public override IQueryable<TimeDetail> SearchFor(Expression<Func<TimeDetail, bool>> predicate, Expression<Func<TimeDetail, bool>> orderbylinq = null, Expression<Func<TimeDetail, object>>[] includes = null)
        {
            var result = DbSet
                .Include("Customer")
                .Include("OrderHeader")
                .Include("TimeDetailStatus")
                .Include("TimeDetailTask.TimeDetailTaskType")
                .Where(predicate);
            if (orderbylinq != null)
            {
                result = result.OrderBy(orderbylinq);
            }
            return result;
        }

EF实体结果返回的列在数据库中不为空

我假设DbSet是您的DbContext。为了刷新,您需要重新创建它。

类似:

DbSet = new DbSet();