Entity Framework如何管理一对二实体关系
发表于:2024-09-29 作者:千家信息网编辑
千家信息网最后更新 2024年09月29日,这篇文章主要介绍Entity Framework如何管理一对二实体关系,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!要在数据库中配置一对多关系,我们可以依赖EF约定,还可以使用
千家信息网最后更新 2024年09月29日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 ICollectionPayWays { 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 DbSetPayWays { 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安全错误
数据库的锁怎样保障安全
数据库的日常检查事项
pb数据库路径
易华录网络安全与发展研究所
《服务器配置与管理》课程
怎么学习服务器
电子软件开发互惠互利
郧阳区服务软件开发市场
国家负责统筹和协调网络安全工作
华为服务器raid卡固态缓存
2018年网络安全的标语
手机文件管理数据库
数据库技术与应用学什么
网络安全是一盘大棋
企业网络安全方案设计的摘要
临沂澳莱软件开发有限公司
企业网络安全实战详解下载
招聘人用什么软件开发
家用服务器管理
南京搭建存储服务器
预防沉迷网络安全常识
ibm 服务器 u盘启动
微信小程序配置服务器失败
国内软件开发如何做
MySQL数据库的系统简介
如何删除数据库中的索引
怎么保障数据库安全
服务器耐用性易维护性
华为和思科的网络安全宣传周
青少年网络安全挑战赛
北航网络安全学院杭州