CodeFirst 表之间的关联

多重性关系可以是Optional(一个属性可拥有一个单个实例或没有)

Required(一个属性必须拥有一个单个实例)

Many很多的(一个属性可以拥有一个集合或一个单个实例)。

Has方法包括如下几个:

• HasOptional

• HasRequired

• HasMany

在多数情况还需要在Has方法后面跟随如下With方法之一:

• WithOptional

• WithRequired

• WithMany

一对多

modelBuilder.Entity<Destination>()
.HasMany(d => d.Lodgings)
.WithOptional(l => l.Destination);

Destination一对多或零对多Lodging

如果将WithOptional改成WithRequired  这将使Lodgings必须对应一个Destination,如果删除Destination将级联删除Lodgings 详细>>

关闭级联删除的方法:

现在你可以设置此关系的WillCascadeOnDelete为false:

HasRequired(l=>l.Destination)

.WithMany(d=>d.Lodgings)

.WillCascadeOnDelete(false)

一对一

modelBuilder.Entity<PersonPhoto>()

.HasRequired(p => p.PhotoOf)

.WithOptional(p => p.Photo);

PersonPhoto一对零或一对一Photo

多对多关系

modelBuilder.Entity<Destination>()

.HasMany(d => d.Lodgings)

.WithRequired()

.HasForeignKey(l => l.LocationId);

Destination多对多Lodging

modelBuilder.Entity<Help>()

.HasMany<Help>(t => t.Helps)

.WithMany()

.Map(m =>
{
m.ToTable("RelatedHelp");
});

多对多的关系语法让我比较费解。求高手解释一下

CodeFirst 表之间的关联,布布扣,bubuko.com

时间: 2024-10-13 17:06:42

CodeFirst 表之间的关联的相关文章

PowerDesigner如何设计表之间的关联

PowerDesigner如何设计表之间的关联 步骤/方法 在工具箱中找到参照关系工具: 由地区表到省份表之间拉参照关系,箭头指向父表,然后双击参照关系线,打开参照关系的属性:   在这里检查父表与子表是否正确,如果因操作失误不正确的话可以点击下拉列表框选择.点击连接标签,进行字段关联设置: 如上图,在这里设置子表的关联字段.OK,基本父表与子表的关联关系已经设置完毕,记住最好不要使用系统自动生成的名称,修改为自己的,否则表多了以后可以会出现重名.

ios CoreData框架的使用,对上下文数据的增删改查,表与表之间的关联,1对多,1对1,谓词查询,多表连接

这里是只是代码,因为博客插入图片效果不是很好,我自己写的总结比较详细,有兴趣的朋友可以在评论里留下邮箱,我收到后会发给大家. 转载注明出处,重视原创者的劳动成果,谢谢! - (void)viewDidLoad { [super viewDidLoad]; [self _creatTable];//插入数据 //    [self _query];// 查询数据 // KVC很霸道,即使readonly通过kvc也可赋值,kvo精华 //    Book * book = [[Book alloc

SAP 透明表之间的关联字段

VTTK-TPLST=TTDST-TPLST(装运点的关联表及描述表字段TTDST-BEZEI) VTTK-ROUTE=TVROT-ROUTE(装运线路关联表及描述表字段TVROT-BEZEI) VTTK-TDLNR=LFA1-LIFNR(供应商关联表及描述表字段LFA1-NAME1) T001-WERKS 和T001-NAME1(工厂表的KEY和工厂描述)

数据库表之间的关联总结、

sql语句中的去重: 例如: SELECT DISTINCT userrole.roleId,userrole.userId FROM userrole; sql 语句中and.or的连接 and:表示并且: or:表示或者: between ...and ... 表示包含大于等于和小于等于: sql语句的运算符 =.>.< .>=.<=.<>.!=.in.like.is null. 多表连接的种类分为三种: 1:交叉连接 2:内连接 3:外连接 交叉连接:假设tabl

表之间的关联及优化

M: OID 1 2 3 M_Cell: OID    MOID 1        1 2        1 3        4 Select M.OID AS M_OID,M_Cell.* From M Left Join M_Cell on M.OID=M_Cell.MOID; 此时查询出的记录数为4条记录: M_OID    OID   MOID 1           1          1 1           2          1 2          null      

关于CodeFirst异常:无法确定类型&#39;XXX&#39;和类型‘YYY’之间的关联的主体端,必须使用关系 Fluent API 或数据注释显式配置此关联的主体端。

此错误的原因是,你配置两个实体间的关系为一对一 然而我认为的一对一关系是,两者之间必须存在一个主体, 也就是说,你不能表1的外键是表2的主键并且表1的主键是表2的外键, 这样不符合数据库式吧? 我想多数人犯这个错误是无意的,并不是想表1的外键是表2的主键并且表1的主键是表2的外键, 怎么改呢?确定主体! 主体就是你要把其他实体的主键存进来的实体. 把非实体的导航属性删除就ok了. 关于CodeFirst异常:无法确定类型'XXX'和类型'YYY'之间的关联的主体端,必须使用关系 Fluent A

模块管理常规功能自定义系统的设计与实现(28--多个模块之间的关联[4])

多个模块之间的关联(4) 前面搭建了客户以及客户父模块的一个分支,另一个分支是产品线,还有一个是业务员,然后这三条线归并到订单之上. 前面我贴了我要搭建系统的一张图,现在贴一下数据库的表和其之间的关系情况. 上图中表和我设计的简易销售管理系统是完全一致的.再看一下的模块图,稍微记下下其中的关系,对于看懂下面的内容很有必要. 对于业务员,产品,订单三条分支我建立的过程就不介绍了.现在来看看架构好的菜单: 再看看加好的各个模块的页面: 1.部门和业务员: 2.商品类别 3.商品 4?订单 订单明细

MySQL---数据库从入门走上大神系列(四)-子查询、表与表之间的关系

本篇博客讲解(子查询)非相关子查询/相关子查询,一对一,一对多,多对一,多对的的关系! 准备: 首先我们创建一列sex.再为部分行设置好值0(女)或者1(男): delete from stud where age=26; 删除年龄为26的行. update stud set sex='1' where saddress like '湖南%'; 将地址中湖南开头的人的的sex修改为1. update stud set sex='0' where age>=30 and sex is null;

【转】Oracle - 数据库的实例、表空间、用户、表之间关系

[转]Oracle - 数据库的实例.表空间.用户.表之间关系 完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例. 1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等): 2) Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区. 在启动Oracle数据库服务器时,实际上是在服务器的内存中创建一个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台内存),然后由这个Oracle数据库实例来访问和控制磁盘