首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >DbContext和ObjectContext有什么不同

DbContext和ObjectContext有什么不同
EN

Stack Overflow用户
提问于 2013-02-14 00:14:27
回答 3查看 20.2K关注 0票数 20

来自MSDN

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

我认为DbContext只处理到数据库的连接和针对数据库工作的线程数量。

现在我知道它有追踪机制了?我以为这是在ObjectContext里。

那么(简单地说)它们之间的区别是什么呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-14 00:21:28

DbContext是ObjectContext类的轻量级版本,它几乎就放在ObjectContext之上(甚至有一种方法可以仅从DbContext访问ObjectContext )。它也更容易使用,IMO,并且使CRUD操作变得非常简单。

对于更好的信息,有谁比Julie Lerman更好地了解更多关于差异的信息,就像EF 4.1中引入的那样。

票数 21
EN

Stack Overflow用户

发布于 2013-06-20 01:52:49

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

票数 6
EN

Stack Overflow用户

发布于 2019-06-21 11:25:00

对象上下文:

1.支持编译查询2.支持实体自跟踪3.适用于实体框架4.0及以下版本4.它不是线程安全的。5.数据库优先和模型优先的方法是最好的。

数据库上下文:

1.不支持编译查询2.支持实体不自跟踪3.适用于实体框架4.1及以上版本4.对静态和共享成员(Public)是线程安全的5.数据库优先、模型优先和代码优先的方法是最好的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14857915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档