DbContext和DataContext是一样的吗?
我正在按照Scott Gu的一个教程来引用一个名为DbContext的类。 我无法在框架4上的任何命名空间上find它,在我看来它已经从CT4 DbContext重命名为.net4 System.Data.Linq.DataContext。 我的假设是否正确?
DbContext
是EF团队最近单独下载的一个新类。 它目前不是核心EF 4.0的一部分。 但是, DbContext
移动DbContext
将是与EF交互的首选方式。
那么它与ObjectContext
有什么不同呢? 在语义上它们是完全相同的,但它们减less了ObjectContext
产生的额外噪音。 像暴露一套需要更多的工作,例如:
public ObjectSet<Customer> Customers { get { return db.CreateObjectSet<Customer>(); } }
用DbContext
你可以这样做:
public DbSet<Customer> Customers { get; set; }
基本上在ObjectContext
,当你做点( .
)时,一切就在那里,这使得列表非常庞大。 EF团队实际上想要在DbContext
上DbContext
的实体是仅针对您的域的实体,而框架的其余部分则隐藏在不同的属性下。 它只是使编程经验更容易。
这意味着,如果您现在使用ObjectContext
并带有一点代码,则可以轻松移动到DbContext
。
这有点晚了,但对于谷歌。 DbContext
用于EF
( EntityFramework ), DataContext
用于L2S
( LINQ To SQL )。