ADO.NET Entity Framework如何:通过每种类型一个表继承以定义模型(实体框架)

本文介绍如何手动创建具有每种类型一个表继承层次结构的概念模型。通过使用ADO.NET实体数据模型工具,定义实体集、派生实体类型,并在MSL中进行映射。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本主题介绍如何手动创建具有每种类型一个表继承层次结构的概念模型。每种类型一个表继承使用数据库中单独的表为继承层次结构中的每种类型维护非继承属性和键属性的数据。

说明说明:

建议使用 ADO.NET 实体数据模型工具来定义具有每种类型一个表继承的模型。 有关更多信息,请参见 演练:映射继承 - 每种类型一个表(实体数据模型工具)

以下是手动定义一个具有每种类型一个表继承的模型的基本步骤:

  1. 在将包含基实体类型和派生类型的概念模型中定义一个实体集。有关更多信息,请参见 EntitySet 元素 (CSDL)

  2. 通过使用 BaseType 特性在概念模型中定义派生实体类型,并且只定义派生类型上的非继承属性。 有关更多信息,请参见 EntityType 元素 (CSDL)

  3. 在以映射规范语言 (MSL) 表示的 EntitySetMapping 元素中映射基实体类型和派生类型。 将继承的属性映射到表列(如果适用)。设置 TypeName 特性的值时使用 IsTypeOf 语法。 有关更多信息,请参见 EntitySetMapping 元素 (MSL)

下面的示例假定您已经安装了 School 示例数据库,并且您已经手动将项目配置为使用实体框架。有关更多信息,请参见 创建 School 示例数据库(实体框架快速入门)配置实体框架(实体框架任务)

创建存储模型

  • 将下面的 XML 文件添加到您的项目中并将其命名为 School.ssdl

创建概念模型

  • 将下面的 XML 文件添加到您的项目中并将其命名为 School.csdl注意下列事项:

    • 为三个实体类型 CourseOnlineCourseOnsiteCourse 仅定义一个实体集 Courses

    • OnlineCourseOnsiteCourse 实体类型是派生类型,这些派生类型由各自定义中的 BaseType 特性指示。

    • OnlineCourseOnsiteCourse 实体类型定义的属性只是非继承属性。

定义概念模型与存储模型之间的映射

  • 将下面的 XML 文件添加到您的项目中并将其命名为 School.msl注意下列事项:

    • 在同一个 EntitySetMapping 元素中定义 CourseOnlineCourseOnsiteCourse 实体类型的映射。

    • OnlineCourseOnsiteCourse 的继承的 CourseID 属性将映射到基础数据库表中的对应列。

    • 对于每个实体类型映射, IsTypeOf 语法用于指示所映射的实体类型。

请参见
任务
其他资源

转载于:https://www.cnblogs.com/bmate/archive/2010/12/29/1920953.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值