ADO.NET 中的新增功能

下面的功能是 .NET Framework 4 为 ADO.NET 引入的新功能。

ADO.NET 实体框架

实体框架通过使开发人员能够针对按实体和关系定义的数据模型进行编程,减少数据驱动应用程序所需的编码和维护工作量。有关更多信息,请参见Entity Framework Overview

下面描述的功能是 .NET Framework 4 的实体框架中的新功能。

概念模型中的外键

您可以创建概念模型,使数据库中的外键列对应于实体类型的标量属性。有关更多信息,请参见Defining and Managing Relationships

用于 N 层应用程序开发的自跟踪实体

现在您可以在使用 N 层应用程序时使用自跟踪实体。自跟踪实体可记录对标量属性、复杂属性和导航属性所做的更改。自跟踪对象中的跟踪信息可以在服务端应用于对象上下文。有关更多信息,请参见Working with Self-Tracking Entities

用于 N 层应用程序开发的新方法

System.Data.Objects 命名空间中的类的新方法可简化 N 层应用程序的开发。有关更多信息,请参见 N-Tier Applications With Entity Framework

对 QueryExtender 控件的 EntityDataSource 支持

EntityDataSource 控件现在支持 QueryExtender 控件,后者用于为从数据源检索的数据创建筛选器。有关更多信息,请参见对 EntityDataSource 应用 LINQ 查询

IObjectSet<T> 提供的可测试性

ObjectContext 类现在返回类型化的 ObjectSet<TEntity> 对象,您可以使用该对象对实体对象执行创建、读取、更新和删除操作。ObjectSet<TEntity> 类实现 IObjectSet<TEntity> 接口。IObjectSet<TEntity> 接口在测试方案时可能很有用。有关更多信息,请参见Working with ObjectSet

直接执行存储命令

现在可以从 ObjectContext 直接执行存储命令。有关更多信息,请参见Directly Executing Store Commands

持久性未知对象

可以将自己的自定义数据类与数据模型一起使用,而无需对数据类本身进行任何修改。这意味着可以将“纯旧式”CLR 对象 (POCO) — 例如现有的域对象 — 与实体框架应用程序一起使用。有关更多信息,请参见Persistence Ignorant Objects (Entity Framework)

延迟加载相关对象

借助延迟加载(也称为“推迟加载”),在您访问导航属性时,可从数据源自动加载相关对象。有关更多信息,请参见Shaping Query Results (Entity Framework)

LINQ to Entities 查询中的函数

EntityFunctionsSqlFunctions 类提供了在 LINQ to Entities 查询中对规范化函数和数据库函数的访问功能。EdmFunctionAttribute 允许 CLR 方法充当概念模型或存储模型中已定义的函数的代理。有关更多信息,请参见Calling Functions in LINQ to Entities Queries

LINQ to Entities 中的 OrderBy 改善

包含 OrderBy 运算符的 LINQ to Entities 查询现在可返回结果,使其按该运算符中指定的参数排序,而无视该运算符在查询中的位置。但是,如果 OrderBy 不是 Entity SQL 和 ObjectQuery<T> 查询中的最后一个运算符,该运算符将被忽略。

自定义对象层代码生成

可以配置 ADO.NET 实体数据模型设计器,使其使用文本模板来生成自定义的对象层代码。有关更多信息,请参见How to: Customize Object-Layer Code Generation

模型优先支持

Generate Database Wizard使您能够先进行概念性建模,然后再创建支持该模型的数据库。有关更多信息,请参见How to: Generate a Database from a Conceptual Model

复杂类型支持

ADO.NET Entity Data Model Designer现在支持复杂类型。有关更多信息,请参见下列主题:

命名服务

Entity Data Model WizardUpdate Model Wizard提供了一个选项,可使用单数或复数形式的 Entity、EntitySet 和 NavigationProperty 名称来改善应用程序代码的可读性。有关更多信息,请参见Choose Your Database Objects Dialog Box (Entity Data Model Wizard)Choose Your Database Objects Dialog Box (Update Model Wizard)

改善的模型浏览器功能

ADO.NET Entity Data Model Designer的**“模型浏览器”**窗口使您能够从存储模型中删除对象,以及在概念模型和存储模型中搜索指定的字符串。有关更多信息,请参见Model Browser WindowHow to: Delete Objects from the Storage Model

实体设计器扩展性

可以使用 Microsoft.Data.Entity.Design.Extensibility 命名空间中的类来编写 Visual Studio 扩展,从而扩展 ADO.NET 实体数据模型工具的功能。Microsoft.Data.Entity.Design.Extensibility 命名空间中的类允许您执行以下操作:

  • 扩展 .edmx 文件生成过程。

  • 扩展 .edmx 文件更新过程。

  • 实体设计器模型浏览器中的对象添加自定义属性。

  • 加载和保存自定义文件格式。

  • 扩展 .edmx 文件的加载和保存过程。

有关更多信息,请参见Extending the Entity Data Model Tools

实体数据模型文档

实体数据模型的文档已进行了更新。有关更多信息,请参见Entity Data Model

请参见

其他资源

ADO.NET

ADO.NET 概述

SQL Server 和 ADO.NET

What's New in WCF Data Services