DbContext和DataContext一样吗?

时间:2010-08-12 19:47:28

标签: c# database entity-framework-4

我正在遵循Scott Gu的教程,该教程引用了一个名为DbContext的类。我无法在框架4上的任何命名空间中找到它,在我看来,它已从CT4 DbContext重命名为.net4 System.Data.Linq.DataContext。我的假设是否正确?

3 个答案:

答案 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

  • EntityFramework的类之一。
  • 代表程序与数据库之间的会话。
  • 允许您的程序向数据库发送数据或从数据库检索数据。

DbContext

  • 您在程序中创建的继承自DataContext的类。
  • 使用DbContext在程序中本地检索或更新数据。
  • 然后将更改(使用继承的DataContext中的方法)推送到实际的数据库以对其进行更新。