我正在遵循Scott Gu的教程,该教程引用了一个名为DbContext的类。我无法在框架4上的任何命名空间中找到它,在我看来,它已从CT4 DbContext重命名为.net4 System.Data.Linq.DataContext。我的假设是否正确?
答案 0 :(得分:88)
DbContext
是EF团队最近单独下载中添加的新课程。它目前不是核心EF 4.0的一部分。但是,DbContext
前进将是与EF互动的首选方式。
那么它与ObjectContext
有何不同?从语义上讲,它们完全相同,但它们减少了ObjectContext
所带来的大量额外噪音。就像暴露一组需要更多工作一样,例如:
public ObjectSet<Customer> Customers
{
get { return db.CreateObjectSet<Customer>(); }
}
使用DbContext
即可:
public DbSet<Customer> Customers { get; set; }
基本上在ObjectContext
上,当你点(.
)时,一切都在那里,这使得列表非常庞大。 EF团队实际上想要在DbContext
上公开的是仅针对您的域的实体,并且框架的其他功能隐藏在不同的属性下。它只是简化了编程体验。
这意味着如果您现在正在使用ObjectContext
,只需一点代码,就可以轻松转移到DbContext
。
答案 1 :(得分:8)
现在有点太晚了,但对于googlers来说。 DbContext
用于EF
( EntityFramework ),DataContext
用于L2S
( LINQ To SQL )。
答案 2 :(得分:0)
./trial
DbContext
DataContext
的类。DbContext
在程序中本地检索或更新数据。DataContext
中的方法)推送到实际的数据库以对其进行更新。