2012-05-25 96 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

相关问题