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

说明:

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

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

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

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

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

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

创建存储模型

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

创建概念模型

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

    • 为三个实体类型 Course、 OnlineCourse 和 OnsiteCourse 仅定义一个实体集 Courses。

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

    • 为 OnlineCourse 和 OnsiteCourse 实体类型定义的属性只是非继承属性。

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

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

    • 在同一个 EntitySetMapping 元素中定义 Course、 OnlineCourse 和 OnsiteCourse 实体类型的映射。

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

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

请参见

任务

如何:通过每个层次结构一个表继承以定义模型(实体框架)

其他资源

CSDL、SSDL 和 MSL 规范
实体数据模型:继承
定义高级数据模型(实体框架任务)

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

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

  1. ADO.NET Entity Framework建模和映射(实体框架)

    在实体框架中,可以采用最适合您应用程序的方式定义概念模型.存储模型以及这两种模型之间的映射.使用 Visual Studio 中的实体数据模型工具,可以从数据库或图形模型创建一个 . edmx 文件, ...

  2. ADO.NET Entity Framework Beta2(五)/快速入门(实体框架)

    This quickstart illustrates a series of tasks that support the topics in Getting Started with the En ...

  3. 自定义Unity对象生命周期管理集成ADO.NET Entity Framework

    在Unity中,从Unity 取得的实例为 Transient.如果你希望使用多线程方式,就需要在组成时使用lifecycle参数,这时候取出的组件就不再是同一个了.在Unity IOC中,它支持我们 ...

  4. EF架构~了解一下,ADO.NET Entity Framework

    回到目录 以下文章部分来自百度百科 背景 长久以来,程序设计师和数据库总是保持着一种微妙的关系,在商用应用程序中,数据库一定是不可或缺的元件,这让程序设计师一定要为了连接与访问数据库而去 学习 SQL ...

  5. Entity Framework (EF)/Linq To entity/ ESQL(entity sql)区别 ADO.NET Entity Framework:来自微软官方的ORM框架

    长久以来,程序员和数据库总是保持着一种微妙的关系,在商用应用程序中,数据库一定是不可或缺的元件,这让程序员一定要为了连接与访问数据库而去学习 SQL 指令,至少对于我而言,我觉得这是一个很不爽的事情. ...

  6. 软件开发知识--[ADO.NET Entity Framework]

    ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案,早期被称为 ObjectSpace,现已经包含在 Vi ...

  7. ADO.NET Entity Framework 入门示例

    ADO.NET Entity Framework 是.Net Framework 3.5 SP1 引入的实体框架,它使开发人员可以通过对象模型(而不是逻辑/关系数据模型)专注于数据.实体框架Entit ...

  8. EF(ADO.NET Entity Framework)

    对象/关系映射框架 ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案.该框架曾经为.NET Framew ...

  9. ADO.NET Entity Framework 学习(1) [ZT]

    前一段时间园子里有很多文章介绍分析了Linq To SQL,它可以说是一个简单实现的ORM,是微软针对数据和对象的阻抗不平衡的问题.C# 3.0推出一些新的特性,比如Extension Method, ...

最新文章

  1. python将局部变量转为全局变量
  2. 视图控制器及屏幕旋转
  3. 计算机统计字符数,如何在Word中统计相同字符(文字)出现的个数 -电脑资料
  4. html的选择器child,css child选择器妙用
  5. Android Note - 内存优化
  6. oracle 12c 多线程,Oracle 12c(12.1)中性能优化功能增强之通过参数THREADED_EXECTION使用多线程模型...
  7. Maven pom.xml 元素配置说明(一)
  8. c语言switch comiti,国际经济学作业复习资料第三章.docx
  9. python程序分析,用Python编写分析Python程序性能的工具的教程
  10. 使用“微服务+云架构”轻松应对系统扩容!
  11. ubuntu软件安装、卸载
  12. 【Android】PA4D_CH6 使用Internat资源
  13. 玩转你的AlphaGo(MAC OS)
  14. 激活Navicat premium12时出现“Rsa public key not find“报错时的解决方法
  15. 档案重要吗有什么作用(转载记录避免以后麻烦)
  16. 获TÜV莱茵认可,美的冰箱在节能和静音方面已达全球领先水平
  17. windows-运维-12 Windows 防火墙
  18. 实战day01(二)----电商行业的背景介绍
  19. 如何查看linux系统的jdk版本
  20. 报错Errors: http://eslint.org/docs/rules/*

热门文章

  1. wince mysql吗_wince的数据库操作
  2. 老年机按键串号_老人机怎么解除*号键解锁
  3. 通信upf是什么意思_5G给边缘计算带来了什么?
  4. Xamarin Essentials教程地理定位Geolocation
  5. IE访问历史记录恢复工具pasco
  6. android 自编译 img,android源码编译生成ramdisk.img和system.img解压和使用(基于海天雄A9+android2.3.3)...
  7. c ef框架-mysql_.net EF框架 MySql實現實例
  8. 面试pythonweb开发的简历_【经验分享】对于Python各个方向的面试经验分享,非常给力!...
  9. 迷宫问题最短捷径c语言深搜,迷宫问题 C语言实现(深搜)
  10. hibernate jar包_源码分析 | 咋嘞?你的IDEA过期了吧!加个Jar包就破解了为什么?