应无所住,而生其心
排名
1
文章
860
粉丝
112
评论
163
net core webapi post传递参数
庸人 : 确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

EF Code First 多对多关系配置

6387人阅读 2019/5/8 17:05 总访问:5185779 评论:1 收藏:1 手机
分类: EF


Code First配置多对多关系,常规有两种方法

 例如我们有一张学生表,和一张课程表,学生和课程是一个多对多的关系


方法1:单纯使用导航属性

            首先在学生表中加入课程表的导航属性

           

          然后在课程表中加入学生的导航属性

          

          这样就可以根据导航属性,生成关联表与外键关系了

        

          可以看到自动生成的表和外键名称都有一定的规则,如果我们想修改表名,外键名称等,我们就可以使用fluent api


方法2:使用fluent api配置映射关系

            使用fluent api就可以自由的指定表名,外键名等

            

            生成的数据库表如下:

            



方法3:Code First 自己管理多对多关系

            上面的两种方式其实都是根据导航属性生成的,关联表只在数据库中有没有在实体中出现,

            我们不好去自己操作关联表,而且关联表也最后只有2个关联的键,我们相加其他字段也不行。

          

            所以这个时候我们可以考虑自己创建一个关联表,通过这个关联表去生成数据库,其实就是两个1对多就能搞定了

            

            这种时候我们自己创建关联表,方便自己控制,除了两个关联的外键,我们也可以随心的添加其他可能需要的字段


            这个时候其实已经可以生产关联表了。如果我们在学生表于课程表中也需要导航属性的话,我们可以把导航属性关联到

            中间表去,也就是这里的UserInfo_R_Cource

            

            另外一个表写法一样,数据库生成的表效果如下:

            


            最近天天都是ef,人都要变成ef了


配置一对多请参考:http://www.tnblog.net/aojiancc2/article/details/2766


2019-10-24补充: 今天又被这个问题难到了!,才想起以前记录过这个问题的,突然觉得记录真的太重要了!不然自己研究很久的东西也会忘





欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

雨雨雨雨辰

2019/10/24 23:57:42

[威武][给力]

NET Core 使用 EF Code First

下面这些内容很老了看这篇:https://www.tnblog.net/aojiancc2/article/details/5365 项目使用多层,把数据库访问...

EF Code First常用命令

Enable-Migrations启用数据库迁移Enable-Migrations –EnableAutomaticMigrations 启动自动迁移Add-Migration Name(名字可...

EF Code First配置1对多关系,配置外键关系

方法一:通过默认名称,导航属性名称+主表主键注意这个是属性不是字段!,要加get,set可能会因为很久没有用,就忘记了,写...

EF Code First操作数据库具体步奏

创建两个类库,分别一个实体类Model,一个帮助类DAL用于操作数据库配置在实体层类添加属性和字段用于创建数据库的表,同时添加...

EF Code First配置唯一约束

在EntityFramework 6.1后可以直接使用:[Index("TitleIndex",IsUnique=true)] publicstringTitle{get;set;}在旧...

Core EF Code First-黑色主题效果

[TOC] 创建好实体Student类: public class Student { public int ID { get; set; } public string LastName ...