实体框架支持多种将概念模型映射到关系数据的方式。有关更多信息,请参见 建模和映射(实体框架)。

实体框架当前支持以下映射方案。

映射方案

说明

简单映射

在此映射方案中,概念模型中的每个实体都映射到存储模型中的单个表。这是实体数据模型工具所生成的默认映射。有关更多信息,请参见 快速入门(实体框架)。

实体拆分

在此映射方案中,概念模型中单个实体的属性映射到两个或更多基础表中的列。在此方案中,表必须共享公共主键。有关更多信息,请参见 演练:将一个实体映射到多个表(实体数据模型工具)和 如何:定义单个实体映射到两个表的模型。

概念模型中的水平分区

在此映射方案中,概念模型中具有相同属性的多个实体类型映射到同一个表。条件子句用于指定表中的数据分别属于哪个实体类型。此映射类似于每个层次结构一个表继承映射。有关更多信息,请参见 如何:通过每个层次结构一个表继承以定义模型。

每个层次结构一个表继承

在此映射方案中,继承层次结构中的所有类型都映射到同一个表。条件子句用于定义实体类型。有关更多信息,请参见 演练:映射继承 - 每个层次结构一个表(实体数据模型工具)和 如何:通过每个层次结构一个表继承以定义模型(实体框架)。

每种类型一个表继承

在此映射方案中,所有类型都分别映射到各自的表。仅属于某个基类型或派生类型的属性存储在映射到该类型的一个表中。有关更多信息,请参见 演练:映射继承 - 每种类型一个表(实体数据模型工具)和 如何:通过每种类型一个表继承以定义模型(实体框架)。

每种具体类型一个表继承

在此映射方案中,每个非抽象类型分别映射到不同的表。所有这些表所包含的列必须映射到派生类型的所有属性(包括从基类型继承的属性)。

每种类型多个实体集

在此映射方案中,单个实体类型在概念模型中以两个或更多独立的实体集进行表示。每个实体集分别映射到存储模型中的一个单独的表。有关更多信息,请参见 如何:通过每种类型多个实体集定义模型(实体框架)。

复杂类型

复杂类型是没有键属性的实体类型的非标量属性。复杂类型可以包含其他嵌套的复杂类型。复杂类型映射到存储模型中的表。有关更多信息,请参见 如何:创建和修改复杂类型(实体数据模型工具)。

函数导入映射

在此方案中,存储模型中的存储过程映射到概念模型中的 FunctionImport 元素。 执行此函数可使用映射的存储过程返回实体数据。有关更多信息,请参见 如何:导入存储过程(实体数据模型工具)和 如何:使用存储过程定义模型(实体框架)。

修改函数映射

在此方案中,在存储模型中定义用于插入、更新和删除数据的存储过程。这些函数是为实体类型定义的,以便为特定实体类型提供更新功能。有关更多信息,请参见 演练:将一个实体映射到存储过程(实体数据模型工具)和 如何:定义具有修改存储过程的模型(实体框架)。

定义查询映射

在此方案中,在存储模型中定义表示数据源中的表的查询。在映射到 SQL Server 数据库时,查询以数据源的本机查询语言(如 Transact-SQL)表示。此 DefiningQuery 元素映射到概念模型中的实体类型。 查询以特定于存储的查询语言进行定义。有关更多信息,请参见 如何:添加定义查询(实体框架)。 在使用定义查询时,无法使用标准更新过程将更新保存到数据源中。可以通过定义修改函数映射来进行更新。

查询视图映射

在此方案中,会在概念模型中的实体类型与存储模型中的关系表之间定义只读映射。此映射基于对存储模型进行的 Entity SQL 查询定义,该查询返回概念模型中的实体。有关更多信息,请参见 QueryView 元素 (MSL)。 在使用查询视图时,无法使用标准更新过程将更新保存到数据源中。可以通过定义修改函数映射来进行更新。

AssociationSet 映射

关联定义实体之间的关系。在具有一对一或一对多关联的简单映射中,在概念模型中定义关系的关联会映射到存储模型中的关联。还支持以下更高级的关联集映射:

  • 多对多关联。关联的两端都映射到存储模型中的链接表。

  • 自关联。此映射支持具有相同类型的两个实体之间的关联,如一个 Employee 与另一个 Employee 之间的关联。

有关更多信息,请参见 Association 元素 (CSDL)。

有关实体数据模型工具所支持的映射方案的信息,请参见 ADO.NET 实体数据模型设计器。

请参见

任务

如何:手动定义模型和映射文件(实体框架)

概念

实体框架资源
使用对象(实体框架)

其他资源

定义高级数据模型(实体框架任务)
ADO.NET 实体数据模型设计器
定义高级数据模型(实体框架任务)
示例(实体框架)

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

ADO.NET Entity Framework 实体框架映射方案相关推荐

  1. Entity Framework 实体框架的形成之旅--实体数据模型 (EDM)的处理(4)

    在前面几篇关于Entity Framework 实体框架的介绍里面,已经逐步对整个框架进行了一步步的演化,以期达到统一.高效.可重用性等目的,本文继续探讨基于泛型的仓储模式实体框架方面的改进优化,使我 ...

  2. Entity Framework 实体框架的形成之旅--基于泛型的仓储模式的实体框架(1)

    很久没有写博客了,一些读者也经常问问一些问题,不过最近我确实也很忙,除了处理日常工作外,平常主要的时间也花在了继续研究微软的实体框架(EntityFramework)方面了.这个实体框架加入了很多特性 ...

  3. Entity Framework 实体框架的形成之旅--利用Unity对象依赖注入优化实体框架(2)

    在本系列的第一篇随笔<Entity Framework 实体框架的形成之旅--基于泛型的仓储模式的实体框架(1)>中介绍了Entity Framework 实体框架的一些基础知识,以及构建 ...

  4. Entity Framework 实体框架的形成之旅--实体框架的开发的几个经验总结

    在前阵子,我对实体框架进行了一定的研究,然后把整个学习的过程开了一个系列,以逐步深入的方式解读实体框架的相关技术,期间每每碰到一些新的问题需要潜入研究.本文继续前面的主题介绍,着重从整体性的来总结一下 ...

  5. Entity Framework 实体框架的形成之旅--为基础类库接口增加单元测试,对基类接口进行正确性校验(10)...

    本篇介绍Entity Framework 实体框架的文章已经到了第十篇了,对实体框架的各个分层以及基类的封装管理,已经臻于完善,为了方便对基类接口的正确性校验,以及方便对以后完善或扩展接口进行回归测试 ...

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

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

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

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

  8. 转载:ADO.NET Entity Framework 试水系列索引(2008/9/9更新,本系列结束)

    Visual Studio 2008发布时,微软给我们带来了LinQ to SQL,解决所谓"阻抗不匹配"问题.最近,随着Visual Studio 2008 SP1的正式发布,又 ...

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

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

  10. 利用泛型与反射更新实体(ADO.NET Entity Framework)

    自从ADO.NET Entity Framework面世以来,受到大家的热捧,它封装了大量代码生成的工具,用户只需要建立好实体之间的关系,系统就是会为用户自动成功了Add.Delete.CreateO ...

最新文章

  1. PaddleHub 1.0正式发布: 一键模型加载,十行代码完成迁移学习
  2. laravel 分页php_laravel 分页 seo浅谈
  3. C语言基本运算符和表达式
  4. linux下tree命令详解
  5. 【BZOJ1854】【codevs3358】游戏,二分图最大匹配
  6. 20_星仔带你学Java之Java常用类
  7. java mysql模糊查询_java实现的连接数据库及模糊查询功能示例
  8. MzTreeView节点树(梅花雪)
  9. 对于 ACM程序设计选修课的感想
  10. android studio实现视频聊天,实现视频通话
  11. 什么是ICP经营许可证?
  12. 广告设计、海报、宣传单、易拉宝、照片放大、网站设计;
  13. java long 百分比,Java 数字转百分比%
  14. 一本学习C#语言的学习手册(提供下载)
  15. 1024分论坛:人工智能创新应用的优化实践和多产业落地
  16. 线性回归的补充与变量归一化
  17. 2022年京东双十一和国庆哪个打折力度大?能优惠多少?
  18. 广大华软html5期末试卷,广州大学华软软件学院2019年广东录取分数线(2019广大华软工科IT类专业受热捧)...
  19. 严恭敏 matlab,惯性仪器测试与数据分析 [严恭敏 编] 2012年版
  20. Python3-word文档操作(二):利用python获取word文档的内容

热门文章

  1. 笔记本电脑如何强制关机_Mac 如何强制关机?
  2. 二、optimizer_trace基本使用
  3. 力扣-1557. 可以到达所有点的最少点数目
  4. Futter基础第9篇: 实现页面跳转、跳转传值(命名路由、命名路由传值)
  5. 7-35 混合类型数据格式化输入 (5 分)
  6. 服务站: WCF 消息传递基础 -- MSDN Magazine, April 2007
  7. MyQL 解压版本安装与默认密码查找(Mysql版本mysql-5.7.26)
  8. 机器学习笔记(二)线性回归模型实现
  9. APP版本更新通知流程测试要点
  10. app.use(express.static)设置静态文件目录小解