对于在db中不为null的列,EF实体结果返回null

时间:2013-04-24 14:44:43

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

从数据库中提取数据时获得奇怪的结果。在一种情况下,我有一个日期时间字段,该字段在数据库中不为空并且具有有效日期。但是当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;
        }

1 个答案:

答案 0 :(得分:0)

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

类似的东西:

DbSet = new DbSet();