2012-05-25 45 views
3

我有下面的代碼試圖將一個對象添加到數據庫中:問題在實體對象添加到數據庫框架

public static void saveAudit(List<AUDIT> audit) 
{ 
Entities dao = new Entities(); 

foreach (CMUAUDIT a in audit) 
{ 
    dao.CMUAUDITs.AddObject(a); 
} 

dao.SaveChanges(); 
} 

但是我得到的錯誤信息:

」 ......的確不包含'AddObject'的定義,並且沒有擴展 可以找到接受類型'System.Data.Entity.DbSet'的第一個參數的方法'AddObject'(是否缺少using指令或程序集引用?)「

我已經做了一些搜索,並提到了與它有關的主鍵。有什麼建議麼?

我正在使用DB2數據庫,如果這有什麼區別?

回答

5

...System.Data.Entity.DbSet...:顯然,您的班級Entities源自DbContext而不是ObjectContext。在這種情況下,CMUAUDITs將是DbSet<T>(而不是ObjectSet<T>)。對實體添加到DbSet<T>正確的方法是:

dao.CMUAUDITs.Add(a); 

AddObject僅適用於一個ObjectSet<T>

+0

dbcontext和objectcontext有什麼區別? – stats101

+0

@ stats101:'DbContext'是一個使用簡化API的'ObjectContext'封裝。它還包含「Code First」發展戰略。建議您更喜歡'DbContext',因爲它更容易使用和使用 - 除非您有一些高級需求,這些高級需求不像'DbContext'那樣可用,就像映射到存儲過程一樣。鏈接:http://stackoverflow.com/a/3473323/270591和http://blogs.msdn.com/b/adonet/archive/2011/04/11/ef-4-1-released.aspx – Slauma