摘要:
主题介绍如何定义在连接到概念模型时使用的连接字符串。本主题基于 AdventureWorks 销售概念模型。 AdventureWorks 销售模型将在实体框架文档的与任务相关的所有主题中使用。本主题假定您已配置实体框架且定义了 AdventureWorks 销售模型。有关更多信息,请参见 如何:手动定义模型和映射文件(实体框架)。 本主题中的过程还包括在 如何:手动配置实体框架项目中。 说明:如果在 Visual Studio 项目中使用实体数据模型向导,则该向导将自动生成 .edmx 文件并将该项目配置为使用实体框架。有关更多信息,请参见 如何:使用实体数据模型向导(实体框架)定义实体框 阅读全文
摘要:
实体框架可用于将模型和映射文件部署为应用程序的嵌入资源。包含嵌入模型和映射文件的程序集必须加载到实体连接所在的应用程序域中。有关更多信息,请参见 连接字符串(实体框架)。 默认情况下,实体数据模型工具嵌入模型和映射文件。手动定义模型和映射文件时,请使用下面的过程以确保文件作为嵌入资源与实体框架应用程序一起部署。 说明:若要维护嵌入资源,每次修改模型和映射文件时都必须重复此过程。嵌入模型和映射文件在 “解决方案资源管理器”中选择概念文件 (.csdl)。 在 “属性”窗格中,将 “生成操作”设置为 “嵌入的资源”。 对存储文件 (.ssdl) 和映射文件 (.msl) 重复步骤 1 和步骤 2。 阅读全文
摘要:
本主题介绍如何手动创建 AdventureWorks 销售模型 模型和映射文件。 如果手动生成模型和映射文件,则仍需要将 Visual Studio 项目配置为使用实体框架。有关更多信息,请参见 如何:手动配置实体框架项目。 说明:如果在 Visual Studio 项目中使用实体数据模型向导,则该向导会自动生成 .edmx 文件并将该项目配置为使用实体框架。有关更多信息,请参见 如何:使用实体数据模型向导(实体框架)。 创建存储架构定义语言 (SSDL) 文件将名为 AdventureWorks.ssdl 的文件添加到您的项目目录中并粘贴以下内容:以带有颜色区分的格式查看复制到剪贴板打印创 阅读全文
摘要:
本主题介绍如何使用 EDM 生成器 (EdmGen.exe) 工具验证模型和映射文件。 有关更多信息,请参见 实体数据模型。 使用 EdmGen.exe 验证 School 模型创建 School 数据库。有关更多信息,请参见 创建 School 示例数据库(实体框架快速入门)。 生成 School 模型。有关更多信息,请参见 如何:使用 EdmGen.exe 生成模型和映射文件。 在命令提示符下执行以下命令(无换行符):以带有颜色区分的格式查看复制到剪贴板打印请参见任务如何:手动配置实体框架项目如何:预生成视图以提高查询性能(实体框架)如何:使用 EdmGen.exe 生成对象层代码其他资源 阅读全文
摘要:
本主题描述如何使用 EDM 生成器 (EdmGen.exe) 工具生成以下文件(基于 School 数据库):概念模型(.csdl 文件)。存储模型(.ssdl 文件)。概念模型与存储模型之间的映射(.msl 文件)。使用 Visual Basic 或 C# 的对象层代码。视图文件。EdmGen.exe 工具使用 /mode:FullGeneration 生成上面列出的文件。有关 EdmGen.exe 命令的更多信息,请参见 EDM 生成器 (EdmGen.exe)。 如果使用 EdmGen.exe 生成模型和映射文件,则仍需要将 Visual Studio 项目配置为使用实体框架。有关更多信 阅读全文
摘要:
本主题介绍如何使用 EDM 生成器 (EdmGen.exe) 工具生成基于 .csdl 文件的对象层代码。 使用 EdmGen.exe 为 Visual Basic 项目的 School 模型生成对象层代码创建 School 数据库。有关更多信息,请参见 创建 School 示例数据库(实体框架快速入门)。 生成 School 模型或获取 School.csdl 文件。有关更多信息,请参见 如何:使用 EdmGen.exe 生成模型和映射文件。 在命令提示符下执行以下命令(无换行符):以带有颜色区分的格式查看复制到剪贴板打印使用 EdmGen.exe 为 C# 项目的 School 模型生成对 阅读全文
摘要:
EdmGen.exe 是用于处理实体框架模型和映射文件的命令行工具。使用 EdmGen.exe 工具可以执行以下任务:使用特定于数据源的 .NET Framework 数据提供程序连接到数据源,生成实体框架使用的概念模型 (.csdl)、存储模型 (.ssdl) 以及映射 (.msl) 文件。有关更多信息,请参见 如何:使用 EdmGen.exe 生成模型和映射文件。 验证现有模型。有关更多信息,请参见 如何:使用 EdmGen.exe 验证模型和映射文件。 生成包含从概念模型 (.csdl) 文件生成的对象类的 C# 或 Visual Basic 代码文件。有关更多信息,请参见 如何:使用 阅读全文
摘要:
ADO.NET 实体数据模型工具可帮助您构建实体框架应用程序。通过实体数据模型工具,您可以从现有数据库创建概念模型,然后以图形方式直观显示和编辑概念模型。或者,您可以首先以图形方式创建概念模型,然后生成支持模型的数据库。无论哪种情况,您都可以在基础数据库更改时自动更新模型,并为应用程序生成对象层代码。 说明:数据库生成和对象层代码生成是可自定义的。有关更多信息,请参见 如何:自定义对象层代码生成(实体数据模型设计器)和 如何:自定义数据库生成(“生成数据库”向导)。 实体数据模型工具使您能够自动修改 .edmx 文件,该文件中包含概念模型、存储模型和映射内容。 有关更多信息,请参见 CSDL、 阅读全文
摘要:
实体框架支持多种将概念模型映射到关系数据的方式。有关更多信息,请参见 建模和映射(实体框架)。 实体框架当前支持以下映射方案。映射方案说明简单映射在此映射方案中,概念模型中的每个实体都映射到存储模型中的单个表。这是实体数据模型工具所生成的默认映射。有关更多信息,请参见 快速入门(实体框架)。 实体拆分在此映射方案中,概念模型中单个实体的属性映射到两个或更多基础表中的列。在此方案中,表必须共享公共主键。有关更多信息,请参见 演练:将一个实体映射到多个表(实体数据模型工具)和 如何:定义单个实体映射到两个表的模型。 概念模型中的水平分区在此映射方案中,概念模型中具有相同属性的多个实体类型映射到同一 阅读全文
摘要:
映射规范语言 (MSL) 是一种基于 XML 的语言,它描述了实体框架应用程序的概念模型与存储模型之间的映射。在实体框架应用程序中,映射元数据是在生成时从 .msl 文件(以 MSL 编写)加载的。实体框架在运行时使用映射元数据将对概念模型的查询转换为存储特定的命令。 说明:实体数据模型设计器(实体设计器)在设计时将映射信息存储在 .edmx 文件中。 在生成时,实体设计器使用 .edmx 文件中的信息创建实体框架在运行时需要的 .msl 文件。有关更多信息,请参见 .edmx 文件概述。 MSL 中引用的所有概念模型类型或存储模型类型的名称必须由其各自的命名空间名称限定。有关概念模型命名空间 阅读全文
摘要:
概念架构定义语言 (CSDL) 是一种基于 XML 的语言,它描述构成数据驱动应用程序的概念模型的实体、关系和函数。此概念模型可以由实体框架或 ADO.NET Data Services 使用。实体框架使用以 CSDL 描述的元数据将在概念模型中定义的实体和关系映射到数据源。有关更多信息,请参见 SSDL 规范和 MSL 规范。 CSDL 是实体框架对于 实体数据模型的实现。 在实体框架应用程序中,概念模型元数据从 .csdl 文件(用 CSDL 编写)加载到 System.Data.Metadata.Edm ..::..EdmItemCollection 的实例中,并可以使用 System. 阅读全文
摘要:
存储架构定义语言 (SSDL) 是一种基于 XML 的语言,用于描述实体框架应用程序的存储模型。在实体框架应用程序中,存储模型元数据从 .ssdl 文件(用 SSDL 编写)加载到 System.Data.Metadata.Edm ..::..StoreItemCollection 的实例中,并且可以使用 System.Data.Metadata.Edm ..::..MetadataWorkspace 类中的方法进行访问。 实体框架使用存储模型元数据将针对概念模型的查询转换为特定于存储的命令。 说明:实体数据模型设计器(实体设计器)在设计时将存储模型信息存储在 .edmx 文件中。 在生成时, 阅读全文
摘要:
概念架构定义语言 (CSDL)、存储架构定义语言 (SSDL) 和映射规范语言 (MSL) 都是基于 XML 的语言,它们分别描述概念模型、存储模型和这些模型之间的映射。在实体框架应用程序中,模型和映射元数据加载自三个文件扩展名分别为 .csdl、.ssdl 和 .msl 的文件。.csdl 和 .ssdl 文件中包含的元数据加载到 System.Data.Metadata.Edm ..::..EdmItemCollection 和 System.Data.Metadata.Edm ..::..StoreItemCollection 类的实例中,可使用 System.Data.Metadata 阅读全文
摘要:
本主题介绍如何手动创建一个概念模型,其中将一个实体类型映射到基础数据库中的两个表。可以使用相同的概念将一个实体类型映射到两个以上的表。 说明:建议使用 ADO.NET 实体数据模型工具来定义实体类型映射到多个表的模型。 有关更多信息,请参见 演练:将一个实体映射到多个表(实体数据模型工具)。 只有在满足以下条件的情况下,才应将一个实体类型映射到多个表:要映射的多个表共享一个公共键。所映射的实体类型在每个基础表中有对应的项。换言之,该实体类型表示的数据在两个表之间具有一对一的对应关系;该实体类型表示两个表的内部联接。以下是手动定义一个实体映射到两个表的模型的基本步骤:定义一个实体类型,该类型的属 阅读全文
摘要:
本主题描述如何创建每种类型多个实体集 (MEST) 的概念模型。通过为每种类型定义多个实体集 (MEST),可以在基础数据库中的多个表具有相同结构时简化代码。当使用的实体类型与其他类型没有关联时,定义一个 MEST 模型很简单。但是,若要为与其他类型存在关联的实体类型定义一个 MEST 模型,则必须为对象图中的每个类型实现 MEST。有关更多信息,请参见 MEST - 什么是 MEST 以及 MEST 如何工作?(可能为英文网页)本主题介绍如何为与其他类型没有关联的实体类型定义一个 MEST。 请注意,仅当基础数据库表具有相同结构时才应实现 MEST。定义 MEST 模型的基本步骤如下:使用 阅读全文
摘要:
本主题介绍如何手动创建具有每个层次结构一个表继承的概念模型。每个层次结构一个表继承使用一个数据库表来维护继承层次结构中的所有实体类型的数据。 说明:建议使用 ADO.NET 实体数据模型工具来定义具有每种类型一个表继承的模型。 有关更多信息,请参见 演练:映射继承 - 每个层次结构一个表(实体数据模型工具)。 以下是手动定义一个具有每个层次结构一个表继承的模型的基本步骤:在将包含基实体类型和派生类型的概念模型中定义一个实体集。有关更多信息,请参见 EntitySet 元素 (CSDL)。 通过使用 BaseType 特性在概念模型中定义派生实体类型,并且只定义派生类型上的非继承属性。 有关更多 阅读全文
摘要:
本主题介绍如何手动创建具有每种类型一个表继承层次结构的概念模型。每种类型一个表继承使用数据库中单独的表为继承层次结构中的每种类型维护非继承属性和键属性的数据。 说明:建议使用 ADO.NET 实体数据模型工具来定义具有每种类型一个表继承的模型。 有关更多信息,请参见 演练:映射继承 - 每种类型一个表(实体数据模型工具)。 以下是手动定义一个具有每种类型一个表继承的模型的基本步骤:在将包含基实体类型和派生类型的概念模型中定义一个实体集。有关更多信息,请参见 EntitySet 元素 (CSDL)。 通过使用 BaseType 特性在概念模型中定义派生实体类型,并且只定义派生类型上的非继承属性。 阅读全文
摘要:
使用实体框架可以指定要在修改实体数据时使用的存储过程。这些存储过程取代了实体框架所生成的方法。存储过程是隐式调用的,因此不需要更改概念架构或现有应用程序代码中定义的数据模型。 说明:建议使用 ADO.NET 实体数据模型工具来指定用于修改实体数据的存储过程。有关更多信息,请参见 演练:将一个实体映射到存储过程(实体数据模型工具)和 如何:将修改函数映射到存储过程(实体数据模型工具)。 本主题演示如何为 Adventure Works 销售模型中的 SalesOrderDetail 实体类型定义修改存储过程。 若要使用此示例,必须已将 AdventureWorks 销售模型添加到您的项目中,并将 阅读全文
摘要:
可以通过以下两种方式在概念模型中公开数据库中定义的存储过程:可以在概念模型中创建映射到存储过程的函数导入。这将允许您针对 ObjectContext 定义一个执行数据库中的存储过程的方法。 根据存储过程的定义方式不同,对应的函数导入可以返回实体类型,也可以返回复杂类型。可以将实体类型的插入、更新和删除操作映射到存储过程。这样,您可以为实体类型定义自定义的插入、更新和删除行为。 说明:如果没有将实体类型的插入、更新和删除这三种操作全部映射到存储过程,则在运行时执行的情况下未映射的操作将失败且会引发 UpdateException。 本主题介绍如何在概念模型中创建映射到数据库中的存储过程的函数导入 阅读全文
摘要:
本节中包含的主题演示如何实现比概念和存储类型之间简单的一对一映射更高级的模型。本节内容如何:使用存储过程定义模型(实体框架)如何:定义具有修改存储过程的模型(实体框架)如何:通过每种类型一个表继承以定义模型(实体框架)如何:通过每个层次结构一个表继承以定义模型(实体框架)如何:通过每种类型多个实体集定义模型(实体框架)请参见其他资源示例(实体框架)建模和映射(实体框架) 阅读全文
摘要:
在实体框架中,可以采用最适合您应用程序的方式定义概念模型、存储模型以及这两种模型之间的映射。使用 Visual Studio 中的实体数据模型工具,可以从数据库或图形模型创建一个 . edmx 文件,然后在数据库或模型发生更改时更新该文件。 随 .NET Framework 一起提供的 EDM 生成器可从现有数据库源生成 .csdl、.ssdl 和 .msl 文件。也可以手动创建模型和映射内容。本节中的主题介绍如何在实体框架中定义建模和映射文件。研读有关数据建模和实体框架的内容。 定义高级数据模型(实体框架任务)CSDL、SSDL 和 MSL 规范生成模型和映射将概念模型映射到存储模型定义概念 阅读全文
摘要:
如果在 Visual Studio 项目中使用实体数据模型向导,该向导将自动生成 .edmx 文件并将该项目配置为使用实体框架。有关更多信息,请参见 如何:使用实体数据模型向导(实体框架)。 也可以手动将 Visual Studio 项目配置为使用实体框架。如果手动定义了模型和映射文件或使用 EDM 生成器 (EdmGen.exe) 实用工具定义了它们,则需要这样做。 本主题中的示例使用 AdventureWorks 销售模型的模型和映射文件。 AdventureWorks 销售模型将在实体框架文档的与任务相关的所有主题中使用。将 Visual Studio 项目配置为使用 Adventure 阅读全文
摘要:
本主题演示如何使用实体数据模型向导来生成 AdventureWorks 销售 .edmx 文件以及将 Visual Studio 项目配置为使用实体框架。 此模型和配置将在任务相关的各个实体框架主题中使用。实体数据模型 向导从 Visual Studio 2008 Service Pack 1 (SP1) 开始成为 Visual Studio 的一个组件。有关更多信息,请参见 实体数据模型向导。 可以手动创建模型和映射文件并将项目配置为使用实体框架,而不使用实体数据模型向导。有关更多信息,请参见 如何:手动定义模型和映射文件(实体框架)和 如何:手动配置实体框架项目。 添加 ADO.NET 实 阅读全文
摘要:
本节的主题介绍如何配置 Visual Studio 项目以使用 ADO.NET 实体框架,包括添加项目引用、定义连接字符串以及定义概念模型。本节内容如何:使用实体数据模型向导(实体框架)如何:手动配置实体框架项目相关章节实体框架快速入门如何:创建新的 .edmx 文件(实体数据模型工具)请参见其他资源建模和映射(实体框架)入门(实体框架) 阅读全文
摘要:
这是 实体框架快速入门的最后一项任务。 在此任务中,您将对与 DataGridView 控件绑定的 Course 对象所做的更改保存到数据库中。 还将运行已完成的 Course Manager 应用程序。保存对对象所做的更改在 “工具箱”中,展开 “公共控件”,将 “按钮”控件拖到 CourseViewer 窗体设计器,将控件的名称更改为 saveChanges,并将 Text 值更改为 Update。 在 CourseViewer 窗体设计器中,双击 saveChanges 控件。 此时将创建 saveChanges_Click 事件处理程序方法。 粘贴以下代码,这些代码将对象更改保存到数据 阅读全文
摘要:
在本任务中,您将针对在 School 模型中表示实体和关联的 CLR 对象创建强类型查询,并将显示控件绑定到从这些查询中返回的对象集合。在 School 数据库中查询系在 CourseViewer 窗体的代码文件的开始处,添加以下 using (C#) 或 Imports (Visual Basic) 语句,以引用从 School 数据库和实体命名空间中创建的模型。 using System.Data.Objects; using System.Data.Objects.DataClasses;在 CourseViewer 窗体的分部类定义的顶部,添加以下用于创建 ObjectContext 阅读全文