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