LINQ to Entities使用的是ObjectContext而不是DataContext。
EF的简短描述如下:
LINQ to Entities、ObjectContext类和实体数据模型
LINQ to Entities查询使用对象服务基础结构。ObjectContext类是与EDM交互的主要类,用于CLR对象。开发人员通过ObjectContext构建ObjectQuery实例。通用的ObjectQuery类表示返回一个实例或一组类型化实体的查询。由ObjectQuery返回的实体对象由Object Context跟踪,并且可以使用SaveChanges方法进行更新。
它甚至不像LINQ to SQL中的DataContext那样工作。 虽然它们都管理连接并跟踪更改,但它们在数据结构和关系建模方面有所不同。
我会对那个错误答案的发布者稍加宽容,因为LINQ to SQL确实提到了“实体”,而不熟悉EF的人可能仍然认为他们知道你在谈论什么。
例如:
DataContext是连接到数据库时映射所有实体的来源。它跟踪您对检索到的所有实体所做的更改,并维护一个“标识缓存”,以确保多次检索的实体使用相同的对象实例表示。
这可能会令人困惑。
显然,LinqToEntities使用ObjectContext而不是DataContext。
很有趣的是,对象团队制作了一个DataContext,而数据团队制作了一个ObjectContext(以及DataQuery vs ObjectQuery等)。"命名很难!"
更新,对于使用EF4.1的.net 4,当使用LinqToEntities时,您可能还会对DbContext感兴趣。请参见also。
我想你可能在提到 ADO.NET 实体数据模型(.edmx 文件 - 类似于 .dbml 文件)。
在 VS 中,它可以在添加项目->ADO.NET 实体数据模型中找到。
有很多这些任意语法差异。例如,SubmitChanges(L2S)和SaveChanges(L2E)。然而,这只是两种技术之间差异的冰山一角。