LINQ to Entities 允许开发人员通过使用 LINQ 表达式和 LINQ 标准查询运算符针对 实体数据模型 (EDM) 对象上下文创建灵活的强类型查询。这样,用户就可以直接从开发环境中以 Transact-SQL 类语法编写强类型的可编写查询。查询以编程语言自身表示,而不作为应用程序代码中嵌入的字符串文本,但后者通常用于在 Microsoft .NET Framework 2.0 版 上编写的应用程序。编译器将捕获语法错误以及成员名称和数据类型中的错误,并且编译时将报告这些错误,同时减少了在 EDM 模型与应用程序之间出现类型问题的可能性。
当应用程序使用 EDM 时,系统将自动处理概念数据模型与基础数据源之间的映射。开发人员不需要了解任何基础数据源或用于查询数据源的特定方法,即可创建 LINQ to Entities 应用程序。这也允许无须更改客户端应用程序即可更改后端数据源,因为大多数特定于数据库的功能由对象服务处理。有关更多信息,请参见对象服务概述(实体框架)。
LINQ to Entities 查询使用对象服务基础结构。ObjectContext 类是作为 CLR 对象与 EDM 进行交互的主要类。开发人员通过 ObjectContext 构造 ObjectQuery 实例。ObjectQuery 泛型类表示一个查询,此查询返回一个由类型化实体组成的实例或集合。由 ObjectQuery 返回的实体对象由对象上下文跟踪,并可以使用 SaveChanges 方法进行更新。