热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

ADO.NETEntityFramework如何:定义单个实体映射到两个表的模型

本主题介绍如何手动创建一个概念模型,其中将一个实体类型映射到基础数据库中的两个表。可以使用相同的概念将一个实体类型映射到两个以上的表。说明:建议使用AD

本主题介绍如何手动创建一个概念模型,其中将一个实体类型映射到基础数据库中的两个表。可以使用相同的概念将一个实体类型映射到两个以上的表。

说明说明:

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

只有在满足以下条件的情况下,才应将一个实体类型映射到多个表:

  • 要映射的多个表共享一个公共键。

  • 所映射的实体类型在每个基础表中有对应的项。换言之,该实体类型表示的数据在两个表之间具有一对一的对应关系;该实体类型表示两个表的内部联接。

以下是手动定义一个实体映射到两个表的模型的基本步骤:

  1. 定义一个实体类型,该类型的属性对应于每个基础表中的列。有关更多信息,请参见 EntityType 元素 (CSDL)。

  2. 通过对每个基础表使用 MappingFragment 元素,定义实体类型的映射。 有关更多信息,请参见 EntityTypeMapping 元素 (MSL) 和 MappingFragment 元素 (MSL)。

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

说明说明:

下面的示例将一个实体类型映射到 School 示例数据库中的 PersonOfficeAssignement 表。 注意,将实体类型映射到这些表的条件得到了满足。也就是说,两个表的内部联接将导致所有人都会分配到办公室。

创建存储模型

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

创建概念模型

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

    • Instructor 实体类型具有映射到 PersonOfficeAssignment 表中的所有列的属性(有关这两个表的详细信息,请参见上面的存储模型)。

      说明说明:

      因为 Instructor 实体类型是一个继承的类型,所以它会继承其基类型 Person 的所有属性。 除了具有 Instructor 类型特有的属性之外, Instructor 实体类型还具有映射到基础表的所有列的属性。

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

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

    • 在 Instructor 实体类型的 EntityTypeMapping 元素内,使用单独的 MappingFragment 元素将属性映射到适当的表。

请参见

其他资源

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

转:https://www.cnblogs.com/bmate/archive/2010/12/29/1921011.html



推荐阅读
  • 本文探讨了在SharePoint环境中使用BDC(Business Data Catalog)时遇到的问题及其解决策略,包括XML文件导入SSP后的不可见性问题以及与远程SQL Server 2005连接的难题。 ... [详细]
  • 本文介绍了多种Eclipse插件,包括XML Schema Infoset Model (XSD)、Graphical Editing Framework (GEF)、Eclipse Modeling Framework (EMF)等,涵盖了从Web开发到图形界面编辑的多个方面。 ... [详细]
  • Spring Boot 初学者指南(第一部分)
    本文介绍了Spring Boot框架的基础知识,包括其设计理念、主要优势以及如何简化传统的J2EE开发流程。 ... [详细]
  • BeautifulSoup4 是一个功能强大的HTML和XML解析库,它能够帮助开发者轻松地从网页中提取信息。本文将介绍BeautifulSoup4的基本功能、安装方法、与其他解析工具的对比以及简单的使用示例。 ... [详细]
  • 深入解析Android Activity生命周期
    本文详细探讨了Android中Activity的生命周期,通过实例代码和详细的步骤说明,帮助开发者更好地理解和掌握Activity各个阶段的行为。 ... [详细]
  • ODB 2.1.0 版本现已推出,此更新引入了多项新功能,如通过访问器、修饰符、函数及表达式访问数据成员,支持虚拟数据成员,并允许在数据成员上直接定义数据库索引等。 ... [详细]
  • SQLite是一种轻量级的关系型数据库管理系统,尽管体积小巧,却能支持高达2TB的数据库容量,每个数据库以单个文件形式存储。本文将详细介绍SQLite在Android开发中的应用,包括其数据存储机制、事务处理方式及数据类型的动态特性。 ... [详细]
  • 时序数据是指按时间顺序排列的数据集。通过时间轴上的数据点连接,可以构建多维度报表,揭示数据的趋势、规律及异常情况。 ... [详细]
  • 本文介绍了在解决Hive表中复杂数据结构平铺化问题后,如何通过创建视图来准确计算广告日志的曝光PV,特别是针对用户对应多个标签的情况。同时,详细探讨了UDF的使用方法及其在实际项目中的应用。 ... [详细]
  • 详解MyBatis二级缓存的启用与配置
    本文深入探讨了MyBatis二级缓存的启用方法及其配置细节,通过具体的代码实例进行说明,有助于开发者更好地理解和应用这一特性,提升应用程序的性能。 ... [详细]
  • 华为云openEuler环境下的Web应用部署实践
    本文详细记录了在华为云openEuler系统上进行Web应用部署的具体步骤,包括配置yum源、安装Apache、MariaDB、PHP及其相关组件,并完成WordPress的安装与配置过程。 ... [详细]
  • IIS6批量添加主机头,修改IIS数据库
    首先,找到IIS的数据库。默认是在C:\WINDOWS\system32\inetsrv下的MetaBase.xml文件。如果找不到,请右键右键站点-》所有服务-》将配置保存到一个 ... [详细]
  • 酷家乐 Serverless FaaS 产品实践探索
    本文探讨了酷家乐在 Serverless FaaS 领域的实践与经验,重点介绍了 FaaS 平台的构建、业务收益及未来发展方向。 ... [详细]
  • 本文旨在探讨如何撰写高效且全面的工作总结,特别是针对数据库管理、Java编程及Spring框架的学习与应用。文章通过实例分析,帮助读者掌握工作总结的写作技巧,提高个人工作汇报的质量。 ... [详细]
  • SpringBoot底层注解用法及原理
    2.1、组件添加1、Configuration基本使用Full模式与Lite模式示例最佳实战配置类组件之间无依赖关系用Lite模式加速容器启动过程,减少判断配置类组 ... [详细]
author-avatar
纤沙湖之歌
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有