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

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

6781人阅读 2019/10/25 9:57 总访问:5194714 评论:0 收藏:0 手机
分类: EF

方法:通过默认名称,导航属性名称+主表主键



注意这个是属性不是字段!,要加get,set可能会因为很久没有用,就忘记了,写成字段了,这样就不行了。


还有可能会报错:


这是因为数据库表中的数据问题,如果以前附表里边本来就有数据,现在在去加外键,因为主表是刚刚才创建的里边数据没有,所以这个时候添加外键肯定因为数据问题加不上去哇

直接在数据库中执行也是一样的错,可以把附表里边的数据删除后在添加,或者是配置外键的字段设置成null<int>,可以为空的类型就行了。



父母表

生成的效果如下:




方法:通过ForeignKey("")

A:配置到字段上面 ForeignKey(“导航属性名字”)

              

B:配置到导航属性上面   ForeignKey("想要成为外键属性名字")



C:其实还有一种,配置到导航属性上面,但是名字不是和定义的外键字段一样, ForeignKey("外键属性名字,但不是自己定义的字段")
   这种方法其实就是使用导航属性生成外键,名字由自己控制而已不会把定义的字段设置成外键(这种配置方法注意ef版本,core是支持的)

         

方法3:  FluentApi

A:先配置多的一方

B:先配置1的一方


core里边的写法和以前的写法变了一点点,以前HasRequired换成HasOne即可。

  1. protected override void OnModelCreating(ModelBuilder modelBuilder)
  2. {
  3.     //方法1:
  4.     modelBuilder.Entity<Student>().HasOne(a => a.UserParent).WithMany(a => a.Students)
  5.               .HasForeignKey(a => a.MyUserParentId);
  6.     //方法2:
  7.     modelBuilder.Entity<UserParent>().HasMany(a => a.Students).WithOne(a => a.UserParent)
  8.              .HasForeignKey(a => a.MyUserParentId);
  9. }



项目下载地址:https://download.tnblog.net/resource/index/50a5130aab0c421a8f60ed038143ffbb



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

评价

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对多关系配置

Code First配置多对多关系,常规有两种方法例如我们有一张学生表,和一张课程表,学生和课程是一个多对多的关系方法1:单纯...

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

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

EF Code First配置唯一约束

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

Core EF Code First-黑色主题效果

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

Redis常用配置

配置主从节点slaveof127.0.0.16379 可能会遇到持久化错误:Error reply to PING from master: ‘-MISCONF Redis is configu...

让IIS支持webp格式图片让IIS支持vtt格式iis设置mime类型iis配置支持的类型

webp格式图片可以让图片体积变小。也让下载图片变得更加困难一点 在线制作webp工具 https://www.upyun.com/webp?utm_mediu...

Service-stack.redis配置连接池与读写分离(处理并发相关等)

配置连接池与读写分类 //写节点(主节点) List&lt;string&gt;writes=newList&lt;string&gt;(); writes.Add(&quot;123456a...

nginx常用命令。nginx启动命令。nginx重启命令。nginx关闭命令。nginx测试配置文件是否正确。nginx nginx.pid文件丢失报错

启动命令:start nginx 关闭命令:nginx -s stop nginx -s quit nginx -s stop与nginx -s quit区别 Quit is a graceful shu...

nginx配置负载均衡注意事项

一.如果location下面的proxy_pass配置有端口号nginx就会直接反向代理到这个地址这样你配置的upstream就没有用了,即使名字和...

ServiceStack.Redis操作Redis配置单例模式

我携漫天星辰以赠你,仍觉漫天星辰不如你。单利的应该是连接池而不应该是redis对象。如果每次操作都是一个redis对象是会有...

配置Java环境

安装jdk 地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html这就不一一赘述了...

c使用unity实现依赖注入四:unity配置文件注入

需要用到的配置文件一:先向xml申明一下unity的配置文件所在的实现类&lt;configSections&gt; &lt;sectionname=&quot;unity...

NET CORE配置EF连接字符串。windows验证的连接字符串配置

在appsettings.json中配置好连接字符串{&quot;ConnectionStrings&quot;:{ &quot;BloggingDatabase&quot;:&quot;Server=(lo...