首页 > 其他分享 >EF Core 关系配置 多对多

EF Core 关系配置 多对多

时间:2022-09-30 15:03:04浏览次数:48  
标签:Core set Name 配置 get builder EF Teachers public

一对多和一对一都只需要在表中增加外键列,但是在多对多关系中,我们必须引入一张中间表保存两张表之间的关联关系。

多对多:不需要声明中间表实体,也不需要声明外键。

实体:

 public class Teacher
    {
        public long Id { get; set; }
        public string Name { get; set; }
        public List<Student> Students { get; set; }=new List<Student>();
    }

  

public class Student
    {
        public long Id { get; set; }
        public string Name { get; set; }    
        public List<Teacher> Teachers { get; set; }
    }

  表结构:

 

 

 

 

 配置类:

 public class TeacherConfig : IEntityTypeConfiguration<Teacher>
    {
        public void Configure(EntityTypeBuilder<Teacher> builder)
        {
            builder.ToTable("T_Teachers");
            builder.Property(s => s.Name).HasMaxLength(20);
            builder.HasMany<Student>(t => t.Students).WithMany(s => s.Teachers)
                .UsingEntity(m => m.ToTable("T_Students_Teachers"));
        }
    }

  

public class StudentConfig : IEntityTypeConfiguration<Student>
    {
        public void Configure(EntityTypeBuilder<Student> builder)
        {
            builder.ToTable("T_Students");
            builder.Property(s => s.Name).IsUnicode().HasMaxLength(20);
        }
    }

  

标签:Core,set,Name,配置,get,builder,EF,Teachers,public
From: https://www.cnblogs.com/friend/p/16744903.html

相关文章

  • Asp.net Core 跨平台生成带Logo二维码
    1.nuget引用  QRCoder-ImageSharp2.代码usingQRCoder;usingSixLabors.ImageSharp.Formats.Jpeg;usingColor=SixLabors.ImageSharp.Color;usingImage=Six......
  • Truenas Core 配置端口聚合
    最近使用TruenasCore非常舒服,于是准备扩大规模,设备自带的2.5G网口就略显不足,于是准备上双万兆网卡,然后做一个端口聚合装上后成功开机,打开WEB段界面发现已经成功识别设备......
  • 远程配置网关采集网关BL102可对接阿里云华为云
    一、后台配置1.1注册账号在浏览器打开后台管理的页面后,点击页面上的注册帐号信息,然后依次输入内容后,点击注册按钮即可。注册成功后,返回主面页,输入帐号密码登陆系统。登录系......
  • 服务器租用怎么选择硬件配置
    1、根据规模测试压力像服务器这样的物品一般都是一次性的确定好成本,所以企业在选择的时候一定要多想一下。需要做与制造厂商多次协商与谈判,在确定购买的时候也要测试......
  • 在 nginx 中配置 HSTS 并禁用 TLS 1.0、1.1
    可以使用以下地址工具按需生成nginx配置https://ssl-config.mozilla.org/#server=nginxHSTS的配置为:#HSTS(ngx_http_headers_moduleisrequired)(63072000seco......
  • 在 asp.net core 中,更换使用 Newtonsoft.Json 并阻止驼峰化命名
    首先需要在引用nuget包:Microsoft.AspNetCore.Mvc.NewtonsoftJson然后在添加MVC的Service时,进行添加配置:builder.Services.AddControllersWithViews().A......
  • [CodeForce] Maximum Subsequence
    ProblemStatement 1.Nisupto35,sotryingallpossiblesubsequencesistooslow(2^35).WecanapplythemeetinthemiddletechniqueanddivideAinto......
  • Git 配置文件 浅析
    config文件位置仓库级配置文件:在所创建仓库下./.git/config针对该仓库。在进入仓库的情况下,你可以传递--local选项让Git强制读写此文件,默认情况下用的就是它。......
  • SpringBoot2 不同版本中 文件上传大小配置
    由于springboot具有几个版本,不同版本对于文件上传最大限制的配置也有所不同。所以要注意springboot本身的版本,不然会一直报错#在springboot1.3版本中:multipart.maxFil......
  • EF Core 关系配置 一对一
    一个订单对应一个快递信息在一对多关系中,EFCore会自动在多端的表中生成一个指向一端的外键列,不需要我们显式地声明外键属性。但是在一对一关系中,必须显式地在其中一个实......