DbContext和ObjectContext之间有什么区别

Ela*_*nda 18 c# asp.net entity-framework

来自MSDN:

表示工作单元和存储库模式的组合,使您可以查询数据库并将更改组合在一起,然后将这些更改作为一个单元写回到存储中.DbContext在概念上类似于ObjectContext.

我虽然DbContext只处理与DB的连接和对DB工作的线程数.

现在我明白它包含跟踪机制?我以为这是在ObjectContext.

那么(用简单的英语)它们之间的区别是什么?

Iro*_*n84 20

DbContext是ObjectContext类的轻量级版本,它几乎位于ObjectContext之上(甚至还有一种方法可以从DbContext获取ObjectContext).它也更容易使用,IMO,并使CRUD操作成为一个难题.

为了获得更好的信息,谁能比Julie Lerman更好地了解差异的更多信息,如EF 4.1所示.


小智 5

DbContext是一个较小的API,它暴露了ObjectContext最常用的功能.在某些情况下,这些功能在DbContext API中进行镜像.在其他情况下,实体框架团队通过向我们提供Find等方法或DbSet.Local等属性,简化了更复杂的编码.但是潜伏着一个巨大的API,你可能仍然需要访问.例如,您可能希望直接使用MetadataWorkspace来编写针对类的通用代码,因为该API可以比反射更有效地读取模型.此外,MetadataWorkspace能够提供有关元数据的更多信息,而不是通过反射发现的信息,例如,Key属性.或者您可能希望利用通过Entity SQL公开的特定于数据库的功能,您无法从LINQ访问实体.或者您可能已经使用ObjectContext编写了一个应用程序,并且希望在将来更新时利用DbContext而不替换所有ObjectContext代码.(编程DbContext参考)