2013-10-26 23 views
3

此代碼狙擊手是從Adding CreatedDate to an entity using Entity Framework 5 Code First實體框架DbEntityEntry>「不包含在哪裏

 public override int SaveChanges() 
    { 
     DateTime saveTime = DateTime.Now; 
     foreach (var entry in this.ChangeTracker.Entries().Where(e => e.State == System.Data.EntityState.Added)) 
     { 
      if (entry.Property("CreateDate").CurrentValue == null) 
       entry.Property("CreateDate").CurrentValue = saveTime; 
     } 
     return base.SaveChanges(); 

    } 

但在我的解決方案,我得到這個錯誤的定義「System.Collection.Generic.IEnumerable「不包含定義對於那些...

+0

檢查您是否有System.Linq的使用語句 –

+0

您有'System.Linq'使用語句? –

回答

4

我期待您缺少using System.Linq

+0

謝謝大家我缺少System.Linq,但VS無法解決它 – Jose

+0

嘗試Resharper它是建議和解決使用程序集和組織代碼的好工具 – Eiaddar

0

嘗試在另外的一個方法,你的代碼,並調用它在你的SaveChanges方法 這樣的事情。只是你savechan以上GES方法寫

private void MyRule() 
{ 
    DateTime saveTime = DateTime.Now; 
    foreach (var entry in this.ChangeTracker.Entries().Where(e => e.State == System.Data.EntityState.Added)) 
    { 
     if (entry.Property("CreateDate").CurrentValue == null) 
      entry.Property("CreateDate").CurrentValue = saveTime; 
    } 
} 

,然後把它在你保存更改,如

public override int SaveChanges() 
{ 
this.MyRule(); 
return base.SaveChanges(); 
} 

這應該做的伎倆:)

乾杯!