我最近问了一个question about tracing Linq-to-Entities
我认为,当他们提到使用DataContext时,one of the answers是不正确的。是否存在用于LINQ-to-Entities的DataContext?如果是这样,我如何获得它?
发布于 2008-09-27 03:21:55
链接到实体使用ObjectContext,而不是DataContext。
以下是EF的简短描述:
LINQ to Entities, the ObjectContext Class, and the Entity Data Model
LINQ to Entities查询使用对象服务基础结构。ObjectContext类是主要的类,用于与作为对象的EDM进行交互。开发人员通过ObjectContext构造一个ObjectQuery实例。泛型ObjectQuery类表示返回类型化实体的实例或集合的查询。ObjectQuery返回的实体对象由对象上下文跟踪,并且可以使用SaveChanges方法进行更新。
它的工作方式甚至不同于LINQ to SQL中的DataContext。虽然它们确实都管理连接和跟踪更改,但它们在如何对数据结构和关系建模方面有所不同。
不过,我会给出这个错误答案的帖子一些松弛,因为LINQ to SQL确实提到了“实体”,而一些不熟悉EF的人很可能仍然认为他们知道你在说什么。
例如:
LINQ to SQL and the DataContext Class
DataContext是通过数据库连接映射的所有实体的源。It 跟踪您对所有检索到的实体实例所做的更改缓存,并维护一个“身份缓存”,以保证多次检索到的实体通过使用相同的对象实例来表示。
这可能会让人感到困惑。
发布于 2008-09-27 03:19:41
显然,LinqToEntities使用ObjectContext而不是DataContext。
有趣的是,对象团队创建了一个DataContext,数据团队创建了一个ObjectContext (以及DataQuery和ObjectQuery等等)。“命名很难!”
更新一下,对于带有EF4.1的.net 4,在使用LinqToEntities时,您可能也会对DbContext感兴趣。参见also。
发布于 2009-01-06 07:14:49
我认为您可能指的是ADO.NET实体数据模型(.edmx文件-相当于.dbml文件)。
在VS中,它可以在Add Item->ADO. Data实体数据模型中看到
https://stackoverflow.com/questions/142762
复制相似问题