ADO.NET Entity Framework生成实体数据模型

实体框架 应用程序和服务基于 实体数据模型 (EDM)。此模型以一组映射到已定义数据源的实体和关系来表示应用程序数据。EDM 由以下部分组成:以实体和关系表示的概念性模型,表示逻辑模型架构的存储模型,以及这两个模型之间的映射。项目的开发阶段通常从概念性模型开始,然后从概念性模型派生逻辑模型。

为满足开发人员要从现有数据库派生 实体数据模型 的需求,实体框架 提供了一组工具,可根据概念性模型生成 EDM、验证 EDM 以及创建可编程类。使用 EDM 生成器 (EdmGen.exe) 命令提示实用工具,可以生成一个简单模型,该模型包含实体与数据源中的表之间的一对一映射。此外,使用 EdmGen.exe 还可以生成基于实体类型的数据类以及验证 EDM。EdmGen.exe 是 .NET Framework 3.5 Service Pack 1(SP1) 的 实体框架 运行库组件的一部分。

Visual Studio 2008 SP1 提供一组集成的 实体数据模型 工具,这些工具可生成包含数据源中所选对象的模型。然后,可以使用 Entity Data Model 设计器修改该概念性模型和映射,从而获得应用程序所需的概念性模型。有关更多信息,请参见 实体数据模型工具

注意事项

生成 EDM 时需要考虑下列注意事项:

  • 所有实体都必须具有键。如果数据库中的某个表没有主键,则 EDM 工具会尝试为相应的实体推断一个键。此外,EDM 工具会在存储架构中生成一个 DefiningQuery 元素,这会使此实体数据成为只读数据。若要使此实体数据成为可更新数据,必须确认所生成的键是有效键,然后删除 DefiningQuery 元素。

  • 对于表示数据库中两个表之间的多对多关系的表,它在概念性架构中可能没有等效的实体。当 EDM 工具遇到没有列(作为外键的两列除外)的此类表时,将在概念性架构中以多对多关联(而不是实体)的形式来表示映射表。这种行为的一个示例就是 School 模型中的 CourseInstructor 关联。有关更多信息,请参见生成 School 实体数据模型(实体框架快速入门)

  • 在此版本中,实体数据模型 工具只支持根据现有数据源自动生成 EDM。不能根据概念性模型自动生成数据源,如关系数据库等。

School 模型

有关此“入门”部分中的主题,请参阅名为 School 的示例数据库。有关在 SQL Server 上生成 School 数据库的脚本,请参见创建 School 示例数据库(实体框架快速入门)

School 数据库包含以下各表:

  • Course

  • CourseGrade

  • CourseInstructor

  • Department

  • OfficeAssignment

  • OnlineCourse

  • OnsiteCourse

  • Person

此数据库示例重点介绍了 Entity Data Model 工具所支持的许多复杂建模方案。该脚本创建表之间的关系并插入示例数据,以便您可以运行这些示例,从而了解其工作方式。下图演示 ADO.NET Entity Data Model 设计器中所显示的 School EDM:

 

另请参见

概念

将概念模型映射到存储架构
实体框架中的数据建模

其他资源

配置实体框架(实体框架任务)
入门(实体框架)
实体数据模型工具
EDM 规范
架构和映射规范(实体框架)

 

posted @ 2010-12-10 15:56  子福当自强  阅读(803)  评论(0编辑  收藏  举报
悟道