在EFCore中多对多关系的设计数据插入与查询
学生类Student
public class Student { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } public List<Teacher> Teachers { get; set; }=new List<Teacher>(); }
老师类Teacher
public class Teacher { public int Id { get; set; } public string Name { get; set; } public List<Student> Students { get; set; }=new List<Student>(); }
实体配置类StudetnConfig
public class StudentConfig : IEntityTypeConfiguration<Student> { public void Configure(EntityTypeBuilder<Student> builder) { builder.ToTable("Student"); builder.HasMany<Teacher>(s =>s.Teachers).WithMany(t => t.Students).UsingEntity(s=>s.ToTable("StudentTeacher")); } }
MyDbContext数据上下文类
public DbSet<Student> Students { get; set; } public DbSet<Teacher> Teachers { get; set; }
数据插入
//添加数据
//多对多 using MyDbContext db = new MyDbContext(); Student s1 = new Student { Name = "S1" ,Age=18 }; Student s2 = new Student { Name = "S2", Age = 19 }; Teacher t1 = new Teacher { Name = "T1" }; Teacher t2 = new Teacher { Name = "T2" }; s1.Teachers.Add(t1); s1.Teachers.Add(t2); s2.Teachers.Add(t1); s2.Teachers.Add(t2); db.Teachers.Add(t1); db.Teachers.Add(t2); db.Students.Add(s1); db.Students.Add(s2); db.SaveChanges();
数据查询
var teachers = db.Teachers.Include(t=>t.Students).ToList(); foreach (var t in teachers) { Console.WriteLine("老师名字:"+t.Name); foreach (var s in t.Students) { Console.WriteLine("\t学生名字:"+s.Name+"---年龄: "+s.Age); } } Console.WriteLine("Hello, World!"); Console.ReadLine();
分类:
EF Core学习
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· 深度对比:PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版