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团队实际上想要在DbContextDbContext的实体是仅针对您的域的实体,而框架的其余部分则隐藏在不同的属性下。 它只是使编程经验更容易。

这意味着,如果您现在使用ObjectContext并带有一点代码,则可以轻松移动到DbContext

这有点晚了,但对于谷歌。 DbContext用于EFEntityFramework ), DataContext用于L2SLINQ To SQL )。