ADO.NET Entity Framework(实体框架)

摘要: (1)web:需要在客户端配置文件的中增加connectionString节点,此节点描述了EntityClient的连接信息。例如: <add name="AutoLifeEntityContainer" connectionString="metadata=res://*/AutoLifeBusinessEntity.csdl|res://*/AutoLifeBusinessEntity.ssdl|res://*/AutoLifeBusinessEntity.msl;provider=System.Data.SqlClient;provider connection string=&quo阅读全文
posted @ 2010-12-30 10:56 悟道2012 阅读(226) | 评论 (0) 编辑
摘要: ObjectQuery <(Of <(<'T >)>)> 泛型类表示一个查询,该查询可以返回零个或零个以上类型化对象的集合。 ObjectQuery <(Of <(<'T >)>)> 属于包含编写和执行查询所必需的连接和元数据信息的 ObjectContext。 可以使用 new 运算符构造 ObjectQuery <(Of <(<'T >)>)>,并将查询字符串和对象上下文传递到该构造函数。 但是,更通用的方案是使用 ObjectContext 派生类的属性获取表示实体集的集合的 ObjectQuery <(Of <(<'T >)>)> 实例。 通常,通过由实体框架工具生成的类或通过 POC阅读全文
posted @ 2010-12-29 18:48 悟道2012 阅读(158) | 评论 (0) 编辑
摘要: 使用 ADO.NET 实体框架可以查询概念模型。实体框架支持针对概念模型执行以下类型的查询:查询类型说明语言集成查询 (LINQ)通过 LINQ to Entities,可以使用语言特定的查询运算符对实体数据执行 LINQ 查询。有关更多信息,请参见 LINQ to Entities。 Entity SQLEntity SQL 是类似于 SQL 的与存储无关的查询语言。通过 Entity SQL,可以将实体数据作为对象或以表格形式进行查询。在以下情况下,应考虑使用 Entity SQL:当查询必须在运行时动态构造时。在这种情况下,还应考虑使用 ObjectQuery <(Of <(<'T >)阅读全文
posted @ 2010-12-29 18:41 悟道2012 阅读(139) | 评论 (0) 编辑
摘要: 从 .NET Framework 版本 4 开始,实体框架支持数据定义语言 (DDL)。这样,您将能够基于连接字符串和存储元数据 (SSDL) 模型创建或删除数据库实例。ObjectContext 的以下方法使用连接字符串和 SSDL 内容来完成以下操作:创建或删除数据库,检查数据库是否存在,以及查看生成的 DDL 脚本: CreateDatabaseDeleteDatabaseDatabaseExistsCreateDatabaseScript 说明:假定有足够的权限可执行 DDL 命令。以上列出的方法将大部分工作都委托给基础 ADO.NET 数据提供程序。该提供程序负责确保用于生成数据库对阅读全文
posted @ 2010-12-29 18:40 悟道2012 阅读(65) | 评论 (0) 编辑
摘要: 本主题介绍如何手动创建一个概念模型,其中将一个实体类型映射到基础数据库中的两个表。可以使用相同的概念将一个实体类型映射到两个以上的表。 说明:建议使用 ADO.NET 实体数据模型工具来定义实体类型映射到多个表的模型。 有关更多信息,请参见 演练:将一个实体映射到多个表(实体数据模型工具)。 只有在满足以下条件的情况下,才应将一个实体类型映射到多个表:要映射的多个表共享一个公共键。所映射的实体类型在每个基础表中有对应的项。换言之,该实体类型表示的数据在两个表之间具有一对一的对应关系;该实体类型表示两个表的内部联接。以下是手动定义一个实体映射到两个表的模型的基本步骤:定义一个实体类型,该类型的属阅读全文
posted @ 2010-12-29 18:38 悟道2012 阅读(113) | 评论 (0) 编辑
摘要: 本主题描述如何创建每种类型多个实体集 (MEST) 的概念模型。通过为每种类型定义多个实体集 (MEST),可以在基础数据库中的多个表具有相同结构时简化代码。当使用的实体类型与其他类型没有关联时,定义一个 MEST 模型很简单。但是,若要为与其他类型存在关联的实体类型定义一个 MEST 模型,则必须为对象图中的每个类型实现 MEST。有关更多信息,请参见 MEST - 什么是 MEST 以及 MEST 如何工作?(可能为英文网页)本主题介绍如何为与其他类型没有关联的实体类型定义一个 MEST。 请注意,仅当基础数据库表具有相同结构时才应实现 MEST。定义 MEST 模型的基本步骤如下:使用阅读全文
posted @ 2010-12-29 18:37 悟道2012 阅读(65) | 评论 (0) 编辑
摘要: 本主题介绍如何手动创建具有每个层次结构一个表继承的概念模型。每个层次结构一个表继承使用一个数据库表来维护继承层次结构中的所有实体类型的数据。 说明:建议使用 ADO.NET 实体数据模型工具来定义具有每种类型一个表继承的模型。 有关更多信息,请参见 演练:映射继承 - 每个层次结构一个表(实体数据模型工具)。 以下是手动定义一个具有每个层次结构一个表继承的模型的基本步骤:在将包含基实体类型和派生类型的概念模型中定义一个实体集。有关更多信息,请参见 EntitySet 元素 (CSDL)。 通过使用 BaseType 特性在概念模型中定义派生实体类型,并且只定义派生类型上的非继承属性。 有关更多阅读全文
posted @ 2010-12-29 18:36 悟道2012 阅读(54) | 评论 (0) 编辑
摘要: 本主题介绍如何手动创建具有每种类型一个表继承层次结构的概念模型。每种类型一个表继承使用数据库中单独的表为继承层次结构中的每种类型维护非继承属性和键属性的数据。 说明:建议使用 ADO.NET 实体数据模型工具来定义具有每种类型一个表继承的模型。 有关更多信息,请参见 演练:映射继承 - 每种类型一个表(实体数据模型工具)。 以下是手动定义一个具有每种类型一个表继承的模型的基本步骤:在将包含基实体类型和派生类型的概念模型中定义一个实体集。有关更多信息,请参见 EntitySet 元素 (CSDL)。 通过使用 BaseType 特性在概念模型中定义派生实体类型,并且只定义派生类型上的非继承属性。阅读全文
posted @ 2010-12-29 18:33 悟道2012 阅读(45) | 评论 (0) 编辑
摘要: 使用实体框架可以指定要在修改实体数据时使用的存储过程。这些存储过程取代了实体框架所生成的方法。存储过程是隐式调用的,因此不需要更改概念架构或现有应用程序代码中定义的数据模型。 说明:建议使用 ADO.NET 实体数据模型工具来指定用于修改实体数据的存储过程。有关更多信息,请参见 演练:将一个实体映射到存储过程(实体数据模型工具)和 如何:将修改函数映射到存储过程(实体数据模型工具)。 本主题演示如何为 Adventure Works 销售模型中的 SalesOrderDetail 实体类型定义修改存储过程。 若要使用此示例,必须已将 AdventureWorks 销售模型添加到您的项目中,并将阅读全文
posted @ 2010-12-29 18:32 悟道2012 阅读(64) | 评论 (0) 编辑
摘要: 可以通过以下两种方式在概念模型中公开数据库中定义的存储过程:可以在概念模型中创建映射到存储过程的函数导入。这将允许您针对 ObjectContext 定义一个执行数据库中的存储过程的方法。 根据存储过程的定义方式不同,对应的函数导入可以返回实体类型,也可以返回复杂类型。可以将实体类型的插入、更新和删除操作映射到存储过程。这样,您可以为实体类型定义自定义的插入、更新和删除行为。 说明:如果没有将实体类型的插入、更新和删除这三种操作全部映射到存储过程,则在运行时执行的情况下未映射的操作将失败且会引发 UpdateException。 本主题介绍如何在概念模型中创建映射到数据库中的存储过程的函数导入阅读全文
posted @ 2010-12-29 18:29 悟道2012 阅读(102) | 评论 (0) 编辑
摘要: 本节中包含的主题演示如何实现比概念和存储类型之间简单的一对一映射更高级的模型。本节内容如何:使用存储过程定义模型(实体框架)如何:定义具有修改存储过程的模型(实体框架)如何:通过每种类型一个表继承以定义模型(实体框架)如何:通过每个层次结构一个表继承以定义模型(实体框架)如何:通过每种类型多个实体集定义模型(实体框架)请参见其他资源示例(实体框架)建模和映射(实体框架)阅读全文
posted @ 2010-12-29 18:29 悟道2012 阅读(45) | 评论 (0) 编辑
摘要: 此示例基于将 Contact、 SalesOrderHeader 和 SalesOrderDetail 表映射到 Contact、 Orders 和 LineItem 类型的 AdventureWorks 数据模型。 您可以创建一个空模型并在编辑器中编辑该模型,而不是按照定义此模型的步骤(如 如何:自定义建模和映射文件以使用自定义对象(实体框架)中所述)操作。 若要编辑模型,请打开 AdventureWorksModel.edmx 文件并将以下代码复制到 edmx:Runtime 标记之间。阅读全文
posted @ 2010-12-29 18:27 悟道2012 阅读(106) | 评论 (0) 编辑
摘要: 若要将自定义数据类用于实体框架,您必须将在概念模型中定义的实体类型和属性匹配到自定义数据类。当您使用实体数据模型工具从数据库中生成模型和映射内容时,概念模型中的实体类型和实体集将与数据库中的表匹配。若要更新模型和映射内容以与自定义数据类匹配,必须执行以下步骤:更新概念模型内容(此内容在概念架构定义语言 (CSDL) 中定义)以匹配自定义数据类。如果需要,则更新存储模型内容(此内容在存储架构定义语言 (SSDL) 中定义)。更新映射内容(此内容在映射规范语言 (MSL) 中定义)。验证更新后的模型和映射内容。防止 Visual Studio 生成对象层。 说明:实体数据模型工具还可以生成基于存储阅读全文
posted @ 2010-12-29 18:27 悟道2012 阅读(140) | 评论 (0) 编辑
摘要: 主题介绍如何定义在连接到概念模型时使用的连接字符串。本主题基于 AdventureWorks 销售概念模型。 AdventureWorks 销售模型将在实体框架文档的与任务相关的所有主题中使用。本主题假定您已配置实体框架且定义了 AdventureWorks 销售模型。有关更多信息,请参见 如何:手动定义模型和映射文件(实体框架)。 本主题中的过程还包括在 如何:手动配置实体框架项目中。 说明:如果在 Visual Studio 项目中使用实体数据模型向导,则该向导将自动生成 .edmx 文件并将该项目配置为使用实体框架。有关更多信息,请参见 如何:使用实体数据模型向导(实体框架)定义实体框阅读全文
posted @ 2010-12-29 18:19 悟道2012 阅读(121) | 评论 (0) 编辑
摘要: 本主题介绍如何手动创建 AdventureWorks 销售模型 模型和映射文件。 如果手动生成模型和映射文件,则仍需要将 Visual Studio 项目配置为使用实体框架。有关更多信息,请参见 如何:手动配置实体框架项目。 说明:如果在 Visual Studio 项目中使用实体数据模型向导,则该向导会自动生成 .edmx 文件并将该项目配置为使用实体框架。有关更多信息,请参见 如何:使用实体数据模型向导(实体框架)。 创建存储架构定义语言 (SSDL) 文件将名为 AdventureWorks.ssdl 的文件添加到您的项目目录中并粘贴以下内容:以带有颜色区分的格式查看复制到剪贴板打印创阅读全文
posted @ 2010-12-29 18:18 悟道2012 阅读(104) | 评论 (0) 编辑
摘要: 本主题介绍如何使用 EDM 生成器 (EdmGen.exe) 工具验证模型和映射文件。 有关更多信息,请参见 实体数据模型。 使用 EdmGen.exe 验证 School 模型创建 School 数据库。有关更多信息,请参见 创建 School 示例数据库(实体框架快速入门)。 生成 School 模型。有关更多信息,请参见 如何:使用 EdmGen.exe 生成模型和映射文件。 在命令提示符下执行以下命令(无换行符):以带有颜色区分的格式查看复制到剪贴板打印请参见任务如何:手动配置实体框架项目如何:预生成视图以提高查询性能(实体框架)如何:使用 EdmGen.exe 生成对象层代码其他资源阅读全文
posted @ 2010-12-29 18:16 悟道2012 阅读(63) | 评论 (0) 编辑
摘要: 本主题介绍如何使用 EDM 生成器 (EdmGen.exe) 工具生成基于 .csdl 文件的对象层代码。 使用 EdmGen.exe 为 Visual Basic 项目的 School 模型生成对象层代码创建 School 数据库。有关更多信息,请参见 创建 School 示例数据库(实体框架快速入门)。 生成 School 模型或获取 School.csdl 文件。有关更多信息,请参见 如何:使用 EdmGen.exe 生成模型和映射文件。 在命令提示符下执行以下命令(无换行符):以带有颜色区分的格式查看复制到剪贴板打印使用 EdmGen.exe 为 C# 项目的 School 模型生成对阅读全文
posted @ 2010-12-29 18:15 悟道2012 阅读(56) | 评论 (0) 编辑
摘要: 本主题描述如何使用 EDM 生成器 (EdmGen.exe) 工具生成以下文件(基于 School 数据库):概念模型(.csdl 文件)。存储模型(.ssdl 文件)。概念模型与存储模型之间的映射(.msl 文件)。使用 Visual Basic 或 C# 的对象层代码。视图文件。EdmGen.exe 工具使用 /mode:FullGeneration 生成上面列出的文件。有关 EdmGen.exe 命令的更多信息,请参见 EDM 生成器 (EdmGen.exe)。 如果使用 EdmGen.exe 生成模型和映射文件,则仍需要将 Visual Studio 项目配置为使用实体框架。有关更多信阅读全文
posted @ 2010-12-29 18:15 悟道2012 阅读(62) | 评论 (0) 编辑
摘要: EdmGen.exe 是用于处理实体框架模型和映射文件的命令行工具。使用 EdmGen.exe 工具可以执行以下任务:使用特定于数据源的 .NET Framework 数据提供程序连接到数据源,生成实体框架使用的概念模型 (.csdl)、存储模型 (.ssdl) 以及映射 (.msl) 文件。有关更多信息,请参见 如何:使用 EdmGen.exe 生成模型和映射文件。 验证现有模型。有关更多信息,请参见 如何:使用 EdmGen.exe 验证模型和映射文件。 生成包含从概念模型 (.csdl) 文件生成的对象类的 C# 或 Visual Basic 代码文件。有关更多信息,请参见 如何:使用 阅读全文
posted @ 2010-12-29 18:14 悟道2012 阅读(115) | 评论 (0) 编辑
摘要: ADO.NET 实体数据模型工具可帮助您构建实体框架应用程序。通过实体数据模型工具,您可以从现有数据库创建概念模型,然后以图形方式直观显示和编辑概念模型。或者,您可以首先以图形方式创建概念模型,然后生成支持模型的数据库。无论哪种情况,您都可以在基础数据库更改时自动更新模型,并为应用程序生成对象层代码。 说明:数据库生成和对象层代码生成是可自定义的。有关更多信息,请参见 如何:自定义对象层代码生成(实体数据模型设计器)和 如何:自定义数据库生成(“生成数据库”向导)。 实体数据模型工具使您能够自动修改 .edmx 文件,该文件中包含概念模型、存储模型和映射内容。 有关更多信息,请参见 CSDL、阅读全文
posted @ 2010-12-29 18:13 悟道2012 阅读(135) | 评论 (0) 编辑
摘要: 实体框架支持多种将概念模型映射到关系数据的方式。有关更多信息,请参见 建模和映射(实体框架)。 实体框架当前支持以下映射方案。映射方案说明简单映射在此映射方案中,概念模型中的每个实体都映射到存储模型中的单个表。这是实体数据模型工具所生成的默认映射。有关更多信息,请参见 快速入门(实体框架)。 实体拆分在此映射方案中,概念模型中单个实体的属性映射到两个或更多基础表中的列。在此方案中,表必须共享公共主键。有关更多信息,请参见 演练:将一个实体映射到多个表(实体数据模型工具)和 如何:定义单个实体映射到两个表的模型。 概念模型中的水平分区在此映射方案中,概念模型中具有相同属性的多个实体类型映射到同一阅读全文
posted @ 2010-12-29 18:12 悟道2012 阅读(133) | 评论 (0) 编辑
摘要: 映射规范语言 (MSL) 是一种基于 XML 的语言,它描述了实体框架应用程序的概念模型与存储模型之间的映射。在实体框架应用程序中,映射元数据是在生成时从 .msl 文件(以 MSL 编写)加载的。实体框架在运行时使用映射元数据将对概念模型的查询转换为存储特定的命令。 说明:实体数据模型设计器(实体设计器)在设计时将映射信息存储在 .edmx 文件中。 在生成时,实体设计器使用 .edmx 文件中的信息创建实体框架在运行时需要的 .msl 文件。有关更多信息,请参见 .edmx 文件概述。 MSL 中引用的所有概念模型类型或存储模型类型的名称必须由其各自的命名空间名称限定。有关概念模型命名空间阅读全文
posted @ 2010-12-29 18:10 悟道2012 阅读(28) | 评论 (0) 编辑
摘要: 存储架构定义语言 (SSDL) 是一种基于 XML 的语言,用于描述实体框架应用程序的存储模型。在实体框架应用程序中,存储模型元数据从 .ssdl 文件(用 SSDL 编写)加载到 System.Data.Metadata.Edm ..::..StoreItemCollection 的实例中,并且可以使用 System.Data.Metadata.Edm ..::..MetadataWorkspace 类中的方法进行访问。 实体框架使用存储模型元数据将针对概念模型的查询转换为特定于存储的命令。 说明:实体数据模型设计器(实体设计器)在设计时将存储模型信息存储在 .edmx 文件中。 在生成时,阅读全文
posted @ 2010-12-29 18:06 悟道2012 阅读(23) | 评论 (0) 编辑
摘要: 概念架构定义语言 (CSDL) 是一种基于 XML 的语言,它描述构成数据驱动应用程序的概念模型的实体、关系和函数。此概念模型可以由实体框架或 ADO.NET Data Services 使用。实体框架使用以 CSDL 描述的元数据将在概念模型中定义的实体和关系映射到数据源。有关更多信息,请参见 SSDL 规范和 MSL 规范。 CSDL 是实体框架对于 实体数据模型的实现。 在实体框架应用程序中,概念模型元数据从 .csdl 文件(用 CSDL 编写)加载到 System.Data.Metadata.Edm ..::..EdmItemCollection 的实例中,并可以使用 System.阅读全文
posted @ 2010-12-29 18:06 悟道2012 阅读(45) | 评论 (0) 编辑
摘要: 概念架构定义语言 (CSDL)、存储架构定义语言 (SSDL) 和映射规范语言 (MSL) 都是基于 XML 的语言,它们分别描述概念模型、存储模型和这些模型之间的映射。在实体框架应用程序中,模型和映射元数据加载自三个文件扩展名分别为 .csdl、.ssdl 和 .msl 的文件。.csdl 和 .ssdl 文件中包含的元数据加载到 System.Data.Metadata.Edm ..::..EdmItemCollection 和 System.Data.Metadata.Edm ..::..StoreItemCollection 类的实例中,可使用 System.Data.Metadata阅读全文
posted @ 2010-12-29 18:05 悟道2012 阅读(63) | 评论 (0) 编辑
摘要: 本主题介绍如何手动创建一个概念模型,其中将一个实体类型映射到基础数据库中的两个表。可以使用相同的概念将一个实体类型映射到两个以上的表。 说明:建议使用 ADO.NET 实体数据模型工具来定义实体类型映射到多个表的模型。 有关更多信息,请参见 演练:将一个实体映射到多个表(实体数据模型工具)。 只有在满足以下条件的情况下,才应将一个实体类型映射到多个表:要映射的多个表共享一个公共键。所映射的实体类型在每个基础表中有对应的项。换言之,该实体类型表示的数据在两个表之间具有一对一的对应关系;该实体类型表示两个表的内部联接。以下是手动定义一个实体映射到两个表的模型的基本步骤:定义一个实体类型,该类型的属阅读全文
posted @ 2010-12-29 18:04 悟道2012 阅读(46) | 评论 (1) 编辑
摘要: 本主题描述如何创建每种类型多个实体集 (MEST) 的概念模型。通过为每种类型定义多个实体集 (MEST),可以在基础数据库中的多个表具有相同结构时简化代码。当使用的实体类型与其他类型没有关联时,定义一个 MEST 模型很简单。但是,若要为与其他类型存在关联的实体类型定义一个 MEST 模型,则必须为对象图中的每个类型实现 MEST。有关更多信息,请参见 MEST - 什么是 MEST 以及 MEST 如何工作?(可能为英文网页)本主题介绍如何为与其他类型没有关联的实体类型定义一个 MEST。 请注意,仅当基础数据库表具有相同结构时才应实现 MEST。定义 MEST 模型的基本步骤如下:使用阅读全文
posted @ 2010-12-29 18:03 悟道2012 阅读(28) | 评论 (0) 编辑
摘要: 本主题介绍如何手动创建具有每个层次结构一个表继承的概念模型。每个层次结构一个表继承使用一个数据库表来维护继承层次结构中的所有实体类型的数据。 说明:建议使用 ADO.NET 实体数据模型工具来定义具有每种类型一个表继承的模型。 有关更多信息,请参见 演练:映射继承 - 每个层次结构一个表(实体数据模型工具)。 以下是手动定义一个具有每个层次结构一个表继承的模型的基本步骤:在将包含基实体类型和派生类型的概念模型中定义一个实体集。有关更多信息,请参见 EntitySet 元素 (CSDL)。 通过使用 BaseType 特性在概念模型中定义派生实体类型,并且只定义派生类型上的非继承属性。 有关更多阅读全文
posted @ 2010-12-29 18:02 悟道2012 阅读(42) | 评论 (0) 编辑
摘要: 本主题介绍如何手动创建具有每种类型一个表继承层次结构的概念模型。每种类型一个表继承使用数据库中单独的表为继承层次结构中的每种类型维护非继承属性和键属性的数据。 说明:建议使用 ADO.NET 实体数据模型工具来定义具有每种类型一个表继承的模型。 有关更多信息,请参见 演练:映射继承 - 每种类型一个表(实体数据模型工具)。 以下是手动定义一个具有每种类型一个表继承的模型的基本步骤:在将包含基实体类型和派生类型的概念模型中定义一个实体集。有关更多信息,请参见 EntitySet 元素 (CSDL)。 通过使用 BaseType 特性在概念模型中定义派生实体类型,并且只定义派生类型上的非继承属性。阅读全文
posted @ 2010-12-29 18:01 悟道2012 阅读(33) | 评论 (0) 编辑
摘要: 使用实体框架可以指定要在修改实体数据时使用的存储过程。这些存储过程取代了实体框架所生成的方法。存储过程是隐式调用的,因此不需要更改概念架构或现有应用程序代码中定义的数据模型。 说明:建议使用 ADO.NET 实体数据模型工具来指定用于修改实体数据的存储过程。有关更多信息,请参见 演练:将一个实体映射到存储过程(实体数据模型工具)和 如何:将修改函数映射到存储过程(实体数据模型工具)。 本主题演示如何为 Adventure Works 销售模型中的 SalesOrderDetail 实体类型定义修改存储过程。 若要使用此示例,必须已将 AdventureWorks 销售模型添加到您的项目中,并将阅读全文
posted @ 2010-12-29 13:58 悟道2012 阅读(37) | 评论 (0) 编辑
摘要: 可以通过以下两种方式在概念模型中公开数据库中定义的存储过程:可以在概念模型中创建映射到存储过程的函数导入。这将允许您针对 ObjectContext 定义一个执行数据库中的存储过程的方法。 根据存储过程的定义方式不同,对应的函数导入可以返回实体类型,也可以返回复杂类型。可以将实体类型的插入、更新和删除操作映射到存储过程。这样,您可以为实体类型定义自定义的插入、更新和删除行为。 说明:如果没有将实体类型的插入、更新和删除这三种操作全部映射到存储过程,则在运行时执行的情况下未映射的操作将失败且会引发 UpdateException。 本主题介绍如何在概念模型中创建映射到数据库中的存储过程的函数导入阅读全文
posted @ 2010-12-29 13:49 悟道2012 阅读(50) | 评论 (0) 编辑
摘要: 本节中包含的主题演示如何实现比概念和存储类型之间简单的一对一映射更高级的模型。本节内容如何:使用存储过程定义模型(实体框架)如何:定义具有修改存储过程的模型(实体框架)如何:通过每种类型一个表继承以定义模型(实体框架)如何:通过每个层次结构一个表继承以定义模型(实体框架)如何:通过每种类型多个实体集定义模型(实体框架)请参见其他资源示例(实体框架)建模和映射(实体框架)阅读全文
posted @ 2010-12-29 13:48 悟道2012 阅读(35) | 评论 (0) 编辑
摘要: 在实体框架中,可以采用最适合您应用程序的方式定义概念模型、存储模型以及这两种模型之间的映射。使用 Visual Studio 中的实体数据模型工具,可以从数据库或图形模型创建一个 . edmx 文件,然后在数据库或模型发生更改时更新该文件。 随 .NET Framework 一起提供的 EDM 生成器可从现有数据库源生成 .csdl、.ssdl 和 .msl 文件。也可以手动创建模型和映射内容。本节中的主题介绍如何在实体框架中定义建模和映射文件。研读有关数据建模和实体框架的内容。 定义高级数据模型(实体框架任务)CSDL、SSDL 和 MSL 规范生成模型和映射将概念模型映射到存储模型定义概念阅读全文
posted @ 2010-12-29 13:33 悟道2012 阅读(71) | 评论 (0) 编辑
摘要: 如果在 Visual Studio 项目中使用实体数据模型向导,该向导将自动生成 .edmx 文件并将该项目配置为使用实体框架。有关更多信息,请参见 如何:使用实体数据模型向导(实体框架)。 也可以手动将 Visual Studio 项目配置为使用实体框架。如果手动定义了模型和映射文件或使用 EDM 生成器 (EdmGen.exe) 实用工具定义了它们,则需要这样做。 本主题中的示例使用 AdventureWorks 销售模型的模型和映射文件。 AdventureWorks 销售模型将在实体框架文档的与任务相关的所有主题中使用。将 Visual Studio 项目配置为使用 Adventure阅读全文
posted @ 2010-12-29 13:31 悟道2012 阅读(76) | 评论 (0) 编辑
摘要: 本主题演示如何使用实体数据模型向导来生成 AdventureWorks 销售 .edmx 文件以及将 Visual Studio 项目配置为使用实体框架。 此模型和配置将在任务相关的各个实体框架主题中使用。实体数据模型 向导从 Visual Studio 2008 Service Pack 1 (SP1) 开始成为 Visual Studio 的一个组件。有关更多信息,请参见 实体数据模型向导。 可以手动创建模型和映射文件并将项目配置为使用实体框架,而不使用实体数据模型向导。有关更多信息,请参见 如何:手动定义模型和映射文件(实体框架)和 如何:手动配置实体框架项目。 添加 ADO.NET 实阅读全文
posted @ 2010-12-29 13:29 悟道2012 阅读(75) | 评论 (0) 编辑
摘要: 本节的主题介绍如何配置 Visual Studio 项目以使用 ADO.NET 实体框架,包括添加项目引用、定义连接字符串以及定义概念模型。本节内容如何:使用实体数据模型向导(实体框架)如何:手动配置实体框架项目相关章节实体框架快速入门如何:创建新的 .edmx 文件(实体数据模型工具)请参见其他资源建模和映射(实体框架)入门(实体框架)阅读全文
posted @ 2010-12-29 13:15 悟道2012 阅读(46) | 评论 (0) 编辑
摘要: 这是 实体框架快速入门的最后一项任务。 在此任务中,您将对与 DataGridView 控件绑定的 Course 对象所做的更改保存到数据库中。 还将运行已完成的 Course Manager 应用程序。保存对对象所做的更改在 “工具箱”中,展开 “公共控件”,将 “按钮”控件拖到 CourseViewer 窗体设计器,将控件的名称更改为 saveChanges,并将 Text 值更改为 Update。 在 CourseViewer 窗体设计器中,双击 saveChanges 控件。 此时将创建 saveChanges_Click 事件处理程序方法。 粘贴以下代码,这些代码将对象更改保存到数据阅读全文
posted @ 2010-12-29 11:40 悟道2012 阅读(284) | 评论 (0) 编辑
摘要: 在本任务中,您将针对在 School 模型中表示实体和关联的 CLR 对象创建强类型查询,并将显示控件绑定到从这些查询中返回的对象集合。在 School 数据库中查询系在 CourseViewer 窗体的代码文件的开始处,添加以下 using (C#) 或 Imports (Visual Basic) 语句,以引用从 School 数据库和实体命名空间中创建的模型。 using System.Data.Objects; using System.Data.Objects.DataClasses;在 CourseViewer 窗体的分部类定义的顶部,添加以下用于创建 ObjectContext 阅读全文
posted @ 2010-12-29 11:31 悟道2012 阅读(138) | 评论 (0) 编辑
摘要: 在此任务中,您将学习使用实体数据模型向导来生成实体数据模型 (EDM)。此 EDM 为 School 模型定义一组 1:1 实体到表映射文件。School 模型将用于整个实体框架入门文档中。添加 ADO.NET 实体数据模型项模板在“解决方案资源管理器”中选择 CourseManager 项目,右键单击,指向“添加”,然后单击“新建项”。在“模板”窗格中,选择“ADO.NET 实体数据模型”。为模型名称键入 School.edmx,然后单击“添加”。将显示“实体数据模型向导”的开始页。生成 EDM在“选择模型内容”对话框中,选择“从数据库生成”。然后,单击“下一步”。单击“新建连接”按钮。在“阅读全文
posted @ 2010-12-10 17:31 悟道2012 阅读(204) | 评论 (0) 编辑
摘要: 在本任务中,您将使用 Visual Studio 2008 创建 Windows 应用程序 Course Manager。使用 Visual Studio 创建 Course Manager 应用程序在“文件”菜单上单击“新建项目”。在“项目类型”窗格中,选择“Visual Basic”或“Visual C#”。在“模板”窗格中,选择“Windows 窗体应用程序”。对于项目名称输入 CourseManager,然后单击“确定”。创建 Course Viewer 窗体在 CourseManager 项目中,选择默认窗体 (Form1)。在“文件属性”窗格中,将“文件名”更改为 CourseVi阅读全文
posted @ 2010-12-10 16:32 悟道2012 阅读(87) | 评论 (0) 编辑
摘要: 在本任务中,您将创建 School 数据库的架构,并将数据加载到此数据库中。为此,您需要使用 SQL Server Management Studio 或 SQL Server Management Studio Express 来执行 Transact-SQL 脚本。在本快速入门的其他任务中,所生成的 School 数据库将用作关系数据源。创建 School 数据库和架构在“文件”菜单上,指向“新建”,然后单击“数据库引擎查询”。在“连接到数据库引擎”对话框中,键入 localhost 或本地 SQL Server 实例的名称,然后单击“连接”。在查询窗口中粘贴以下 Transact-SQL阅读全文
posted @ 2010-12-10 16:31 悟道2012 阅读(127) | 评论 (0) 编辑
摘要: 本快速入门介绍支持 入门(实体框架)中的各个主题的一系列任务。这些任务旨在帮助您熟悉 ADO.NET 实体框架。学习内容本快速入门的第一个任务介绍如何创建 School 数据库,然后使用 Visual Studio 工具,针对此数据库中的各个表按照 1:1 映射为 实体数据模型 (EDM) 生成映射文件。在后续任务中,您将在 Visual Studio 中创建一个 Windows 窗体应用程序,创建用于访问 School 模型中数据的查询,将查询结果绑定到显示控件以显示查询的结果,然后更新对象并持久保留对数据库的更改。您可以从 CodePlex 中以 Visual Basic 项目或 C# 项阅读全文
posted @ 2010-12-10 16:21 悟道2012 阅读(187) | 评论 (0) 编辑
摘要: 实体框架 将一组概念性架构和存储架构连同它们之间的映射一起编译为称为“客户端视图”的双向 Entity SQL 语句对。这些视图驱动运行时引擎中的查询和更新处理。可以在设计时或运行时(在对 实体数据模型 (EDM) 架构第一次执行查询时)调用生成视图的映射编译器。实体框架 通过提供到基础数据提供程序和关系数据库的 EntityConnection,建立在特定于存储的 ADO.NET 数据提供程序的基础之上。执行查询时,查询将被解析并转换为规范命令目录树,规范命令目录树是查询的对象模型表示形式。规范命令目录树表示选择、更新、插入和删除命令。所有后续处理将在命令目录树上执行,命令目录树是 Syst阅读全文
posted @ 2010-12-10 16:05 悟道2012 阅读(175) | 评论 (0) 编辑
摘要: 实体框架 提供以对象为中心的表格格式数据视图(以实体类型表示)。应用程序开发人员只需考虑对从概念性模型生成的对象模型进行编程,而不必考虑数据库架构以及如何访问数据库对象并将这些对象转换为编程对象。实体框架 使用模型架构和映射将对实体的创建、读取、更新和删除操作转换为数据源中的等效操作。注意本节中演示的所有映射文件片断都由 EDM 生成器 (EdmGen.exe) 工具生成。概念性模型概念性模型是定义 EDM 中的实体和关联的 实体数据模型 (EDM) 架构。定义此模型的 XML 语法称为概念性架构定义语言 (CSDL)。CSDL 中定义的每个实体类型都具有一个名称、一个用于唯一标识实例的键和一阅读全文
posted @ 2010-12-10 15:58 悟道2012 阅读(143) | 评论 (0) 编辑
摘要: 实体框架 应用程序和服务基于 实体数据模型 (EDM)。此模型以一组映射到已定义数据源的实体和关系来表示应用程序数据。EDM 由以下部分组成:以实体和关系表示的概念性模型,表示逻辑模型架构的存储模型,以及这两个模型之间的映射。项目的开发阶段通常从概念性模型开始,然后从概念性模型派生逻辑模型。为满足开发人员要从现有数据库派生 实体数据模型 的需求,实体框架 提供了一组工具,可根据概念性模型生成 EDM、验证 EDM 以及创建可编程类。使用 EDM 生成器 (EdmGen.exe) 命令提示实用工具,可以生成一个简单模型,该模型包含实体与数据源中的表之间的一对一映射。此外,使用 EdmGen.ex阅读全文
posted @ 2010-12-10 15:56 悟道2012 阅读(279) | 评论 (0) 编辑
摘要: ADO.NET 实体框架 旨在支持以数据为中心的应用程序和服务,并提供平台用于对数据进行编程,该平台将抽象级别从逻辑关系级别提升为概念级别。通过使开发人员可以在更高的抽象级别上使用数据,实体框架 支持独立于任何特定数据存储引擎或关系架构的代码。有关更多信息,请参见 实体框架简介。实体框架 支持 实体数据模型 (EDM) 在存储和概念级别上定义数据以及这两个级别之间的映射。它还使开发人员能够直接对在概念级别上定义为公共语言运行库 (CLR) 对象的数据类型进行编程。实体框架 提供一些工具,用于基于现有数据库生成 EDM 和相关 CLR 对象。过去在创建基于对象的数据应用程序和服务时,需要大量数据阅读全文
posted @ 2010-12-10 15:28 悟道2012 阅读(183) | 评论 (0) 编辑
摘要: 实体框架 是 ADO.NET 中的一组支持开发面向数据的软件应用程序的技术。面向数据的应用程序的架构师和开发人员曾为实现两个迥然不同的目标费尽心机:他们必须为要解决的业务问题的实体、关系和逻辑构建模型,还必须处理用于存储和检索数据的数据引擎。数据可能跨多个各有不同协议的存储系统;甚至使用单个存储系统的应用程序也必须在存储系统的要求与编写高效且容易维护的应用程序代码之间取得平衡。实体框架 使开发人员可以采用特定于域的对象和属性(如客户和客户地址)的形式使用数据,而不必自己考虑存储这些数据的基础数据库表和列。通过提升开发人员在处理数据时可以使用的抽象级别并减少创建和维护面向数据的应用程序所需的代码阅读全文
posted @ 2010-12-10 15:26 悟道2012 阅读(155) | 评论 (0) 编辑
摘要: ADO.NET 实体框架 设计用于支持开发人员通过对概念性应用程序模型编程(而不是直接对关系存储架构编程)来创建数据访问应用程序。目标是降低面向数据的应用程序所需的代码量并减轻维护工作。Entity Framework 应用程序有以下优点:应用程序可以通过更加以应用程序为中心的概念性模型(包括具有继承性、复杂成员和关系的类型)来工作。应用程序不再对特定的数据引擎或存储架构具有硬编码依赖性。可以在不更改应用程序代码的情况下更改概念性模型与特定于存储的架构之间的映射。开发人员可以使用可映射到各种存储架构(可能在不同的数据库管理系统中实现)的一致的应用程序对象模型。多个概念性模型可以映射到同一个存储阅读全文
posted @ 2010-12-10 15:09 悟道2012 阅读(135) | 评论 (0) 编辑

悟道2012