数据库关系与EF实体关系

简介:
ADO.NET Entity Framework是对SQL Server 表和表间关系的一个映射的框架,在SQL Server中的表关系,在EF中也转抽象成实体类间的关系。在SQL Server中,表间关系有:一对多,一对一,多对多,在实体中,也同样有这几种关系,并且在EF中,能从数据表关系生成实体间关系。
1、 一对多
下图是数据中表Sub与表Main的关系图,表Sub中的MainID对应表Main中的ID。
 

对应的EF中的实体图为
 

在Main对象中有一个Subs的集合,但对于Sub对象,则有一个Main的属性,但只是一个这样的对象。不管是在数据库还是在EF中,一对多的关系是比较好理解,也没有太多歧义的。
2、 一对一
我们可以把上面的数据表改成一对一,如果不改变表结构的基础上可以给Subs表中的MainID加一个唯一约束,如下:
SQL语句:
alter  table subs
add  constraint AK_SubsMainid
Unique(MainID)
这时,我们打开数据库关系图,会发现,确定表Mains与Subs成了一对一的关系,如下图:
 

此时,我们再从数据库生成实体关系类,如下图:
 

 

结果还是一对多的实体图,Main 对象的Subs属性仍然是个集合,但这个集合往数据理新时,要验证唯一约束。
要使这种一对一的数据表关系映射到实体的一对一,就得改变一下表结构了。
 
现在Mains表中的ID是自动增长,也是该表的主键,而Subs中的ID也是该表的主键,但他是Mains表ID的外键。这时,生成的实体关系图如下:
 

3、 多对多
如果两张表是多对多的关系,就需要再建立第三张表,只是用来存两张表的ID,如下图:
 

生成实体图如下:
 

生成实体关系图后,就后了两个实体了,其中的关系,代表着一张数据库表MainSub。








本文转自桂素伟51CTO博客,原文链接: http://blog.51cto.com/axzxs/552433 ,如需转载请自行联系原作者


相关文章
|
5月前
|
存储 缓存 NoSQL
数据库实体与关系模型
【5月更文挑战第16天】本文介绍了数据库模型和UML关系,UML包括依赖、关联(聚合、组合)、泛化和实现4类关系。UML有13种图,分为结构图、行为图和交互图。数据库的基本数据模型包括外模式(用户视图)、概念模式(全局逻辑结构)和内模式(物理存储)。数据模型三要素是数据结构、操作和约束条件。简单易用的缓存数据模型适用于需求灵活、高性能、大数据量且不要求强一致性的场景。
81 5
数据库实体与关系模型
|
5月前
|
SQL 关系型数据库 MySQL
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
|
12月前
|
前端开发 Java 关系型数据库
【Mybatis-Plus】mybatisplus更新时,实体字段为空,数据库不更新的解决方案
【Mybatis-Plus】mybatisplus更新时,实体字段为空,数据库不更新的解决方案
403 0
|
2月前
|
Java 数据库连接 数据库
AI 时代风起云涌,Hibernate 实体映射引领数据库高效之路,最佳实践与陷阱全解析!
【8月更文挑战第31天】Hibernate 是一款强大的 Java 持久化框架,可将 Java 对象映射到关系数据库表中。本文通过代码示例详细介绍了 Hibernate 实体映射的最佳实践,包括合理使用关联映射(如 `@OneToMany` 和 `@ManyToOne`)以及正确处理继承关系(如单表继承)。此外,还探讨了常见陷阱,例如循环依赖可能导致的无限递归问题,并提供了使用 `@JsonIgnore` 等注解来避免此类问题的方法。通过遵循这些最佳实践,可以显著提升开发效率和数据库操作性能。
68 0
|
2月前
|
存储 开发框架 .NET
ASP.NET Web Api 使用 EF 6,DateTime 字段如何取数据库服务器当前时间
ASP.NET Web Api 使用 EF 6,DateTime 字段如何取数据库服务器当前时间
|
2月前
|
SQL 关系型数据库 数据库
EF Core连接PostgreSQL数据库
EF Core连接PostgreSQL数据库
28 0
|
4月前
|
存储 关系型数据库 MySQL
MySQL周内训参照1、ER实体关系图与数据库模型图绘制
MySQL周内训参照1、ER实体关系图与数据库模型图绘制
55 1
|
4月前
|
存储 监控 数据管理
数据库原理与应用——简答题练习(数据管理技术发展、数据库主要特征、数据模型、关系模型、实体性之间的关系、DBMS的功能、相关术语解释、数据库系统)
数据库原理与应用——简答题练习(数据管理技术发展、数据库主要特征、数据模型、关系模型、实体性之间的关系、DBMS的功能、相关术语解释、数据库系统)
48 0
|
4月前
|
SQL 开发框架 .NET
【Entity Framework】聊一聊EF如何使用数据库函数
【Entity Framework】聊一聊EF如何使用数据库函数
48 0
|
4月前
|
SQL 存储 开发框架
【Entity Framework】EF中的增删改查
【Entity Framework】EF中的增删改查
100 0
下一篇
无影云桌面