Entity Framework如何管理一对二实体关系
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍Entity Framework如何管理一对二实体关系,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!要在数据库中配置一对多关系,我们可以依赖EF约定,还可以使用
千家信息网最后更新 2026年11月02日Entity Framework如何管理一对二实体关系
这篇文章主要介绍Entity Framework如何管理一对二实体关系,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
要在数据库中配置一对多关系,我们可以依赖EF约定,还可以使用数据注解或Fluent API来显式创建关系。接下来使用捐赠者Donator和支付方法PayWay这两个类来举例子,这里的一对多关系是:一个人可以通过多种支付方式赞助我。

支付方式类PayWay结构如下:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace OneToMany.Model.Model{ public class PayWay { public int PayWayId { get; set; } public string Name { get; set; } public virtual Donator Donator { get; set; } }}因为一个赞助者可以通过多种支付方式赞助我,这句话就表明了Donator对象应该有一个PayWay的集合,因此,我们要给Donator类新加入一个集合属性,捐赠者类Donator结构如下:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace OneToMany.Model.Model{ public class Donator { public int Id { get; set; } public string Name { get; set; } public string Amount { get; set; } public DateTime DonateDate { get; set; } /// /// PayWay类型的集合属性 /// public virtual ICollection PayWays { get; set; } }} Donator类的配置伙伴类的定义如下:
using OneToMany.Model.Model;using System;using System.Collections.Generic;using System.Data.Entity.ModelConfiguration;using System.Linq;using System.Text;using System.Threading.Tasks;namespace OneToMany.Map.Map{ public class DonatorMap :EntityTypeConfiguration { public DonatorMap() { ToTable("Donator"); //将Name设置为必须 this.Property(p => p.Name).IsRequired(); } }} PayWay的配置伙伴类的定义如下:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using OneToMany.Model.Model;using System.Data.Entity.ModelConfiguration;namespace OneToMany.Map.Map{ public class PayWayMap : EntityTypeConfiguration { public PayWayMap() { ToTable("PayWay"); this.Property(p => p.Name).HasMaxLength(16); } }} EFDbContext类定义如下:
using OneToMany.Model.Model;using System;using System.Collections.Generic;using System.Data.Entity;using System.Linq;using System.Text;using System.Threading.Tasks;namespace OneToMany.Map.EFContext{ public class EFDbContext:DbContext { public EFDbContext() : base("name=CodeFirstApplication") { } public DbSet PayWays { get; set; } public DbSet Donators { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { // 设置主键 modelBuilder.Entity().HasKey(p => p.PayWayId); modelBuilder.Entity().HasKey(p => p.DonatorId); // 设置一对多 modelBuilder.Entity().HasMany(p => p.PayWays).WithRequired(t => t.Donator); base.OnModelCreating(modelBuilder); } }} 控制台程序定义如下:
using OneToMany.Map.EFContext;using OneToMany.Model.Model;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace OneToManyApplication{ class Program { static void Main(string[] args) { using (var context = new EFDbContext()) { var donator = new Donator { Amount = 6, Name = "虾米", DonateDate = DateTime.Now, PayWays = new List { new PayWay{Name="支付宝"}, new PayWay{Name="微信"} } }; context.Donators.Add(donator); context.SaveChanges(); } Console.WriteLine("执行成功"); Console.ReadKey(); } }} 程序运行后数据库结构如下:
查询数据:
以上是"Entity Framework如何管理一对二实体关系"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
支付
数据
方式
结构
配置
实体
管理
伙伴
内容
可以通过
多种
属性
捐赠者
数据库
程序
篇文章
成功
接下来
两个
个人
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
西安纸贵互联网科技有限公司
科技互联网企业
新华互联网科技学院
互联网科技垄断
互联网扶贫科技
致聘互联网科技
撒么互联网科技公司
滨湖区互联网智能科技产品供应
福建科技产业互联网发展
崇明区互联网教育科技诚信经营
语蝶互联网科技有限公司
杭州壁岐互联网科技有限公司
允成互联网科技有限公司融资
明优互联网科技有限公司
雨阳互联网卡科技有限公司
广州有谷有贝互联网科技有限公司
昆明中奇联合互联网科技
玉溪新华互联网科技怎么选
数字互联网科技有限公司
科技互联网专业务虚会材料
咖啡豆
小米移动互联网科技园
与互联网科技公司
互联网金融 科技金融
掌上梦互联网科技
顺网科技2021年互联网排名
海南科技产业互联网平台
想开互联网科技公司怎么样
互联网金融科技公司的优势
云南互联网科技学费