Entity Framework如何管理一对二实体关系
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章主要介绍Entity Framework如何管理一对二实体关系,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!要在数据库中配置一对多关系,我们可以依赖EF约定,还可以使用
千家信息网最后更新 2025年11月08日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安全错误
数据库的锁怎样保障安全
政府网络安全管理员
计算机网络安全 的论文
phpjava服务器
数据库的图片是什么
通州区网络安全产业园
人社局网络安全
网络安全防护专项检查
河南数据库安全箱定制价格
hive获取数据库
安卓本地数据库录入
扬州软件开发价格咨询
会员过期状态数据库
局域网服务器如何访问
如何上传文件到远程服务器
服务器限制游戏通用吗
烟台宏聚网络技术
dns服务器发生故障要怎么修
人体身高体重数据库
计算机网络安全包括实体安全
重庆市维普数据库
学校招生网络技术
新希望网络安全
浙江常规软件开发科技
酒店管理系统用什么服务器
国外利用网络技术改革采编过程
软件开发工程师考试题
嵌入式系统与软件开发
互联网科技发达的句子
网络安全千亿市场规模
住宅楼里可以放很多服务器吗