2013-04-24 82 views
3

從數據庫中提取數據時得到一個奇怪的結果。在一種情況下,我有一個日期時間字段,在數據庫中不是空的,並且有一個有效的日期。但是,當EF返回記錄時,它將返回null。EF實體結果在分區db中不爲空的列返回空值

如果我使用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; 
     } 
+0

嘗試調用'ToList()'方法來獲得,而不是使用IQueryable的形而下的結果。 – 2013-04-24 14:54:13

回答

0

我假設DbSet是你DbContext。爲了刷新它,你需要重新創建它。

喜歡的東西:

DbSet = new DbSet(); 
+0

你今天早上2點2是matty!謝謝。 – 2013-04-24 15:38:39

+0

@ChadRichardson LOL我沒有意識到你是同一個人!沒問題:)高興我可以幫助,再次! – mattytommo 2013-04-24 15:42:01

+0

嘿在哪裏做? – 2014-12-20 17:52:45