广告
返回顶部
首页 > 资讯 > 精选 >Entity Framework如何管理一对二实体关系
  • 418
分享到

Entity Framework如何管理一对二实体关系

2023-06-29 09:06:34 418人浏览 独家记忆
摘要

这篇文章主要介绍Entity Framework如何管理一对二实体关系,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!要在数据库中配置一对多关系,我们可以依赖EF约定,还可以使用数据注解或Fluent api

这篇文章主要介绍Entity Framework如何管理一对二实体关系,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

要在数据库中配置一对多关系,我们可以依赖EF约定,还可以使用数据注解或Fluent api来显式创建关系。接下来使用捐赠者Donator和支付方法PayWay这两个类来举例子,这里的一对多关系是:一个人可以通过多种支付方式赞助我。

Entity Framework如何管理一对二实体关系

支付方式类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; }        /// <summary>        /// PayWay类型的集合属性        /// </summary>        public virtual ICollection<PayWay> 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<Donator>    {        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<PayWay>    {        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<PayWay> PayWays { get; set; }        public DbSet<Donator> Donators { get; set; }        protected override void OnModelCreating(DbModelBuilder modelBuilder)        {            // 设置主键            modelBuilder.Entity<PayWay>().HasKey(p => p.PayWayId);            modelBuilder.Entity<Donator>().HasKey(p => p.DonatorId);            // 设置一对多            modelBuilder.Entity<Donator>().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<PayWay> {                      new PayWay{Name="支付宝"},                      new PayWay{Name="微信"}                    }                };                context.Donators.Add(donator);                context.SaveChanges();            }            Console.WriteLine("执行成功");            Console.ReadKey();        }    }}

程序运行后数据库结构如下:

Entity Framework如何管理一对二实体关系

查询数据:

Entity Framework如何管理一对二实体关系

以上是“Entity Framework如何管理一对二实体关系”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: Entity Framework如何管理一对二实体关系

本文链接: https://www.lsjlt.com/news/324026.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Entity Framework管理一对二实体关系
    在上一篇文章中,简单的介绍了使用Fluent API如何管理一对一的实体关系,在这篇文章中,接着介绍Fluent API如何管理一对多的实体关系。 要在数据库中配置一对多关系,我们可...
    99+
    2022-11-13
  • Entity Framework如何管理一对二实体关系
    这篇文章主要介绍Entity Framework如何管理一对二实体关系,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!要在数据库中配置一对多关系,我们可以依赖EF约定,还可以使用数据注解或Fluent API...
    99+
    2023-06-29
  • Entity Framework管理一对一实体关系
    我们现在已经知道如何使用Code First来定义简单的领域类,并且如何使用DbContext类来执行数据库操作。现在我们来看下数据库理论中的多样性关系,我们会使用Code Firs...
    99+
    2022-11-13
  • Entity Framework如何管理一对一实体关系
    这篇文章给大家分享的是有关Entity Framework如何管理一对一实体关系的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。我们现在已经知道如何使用Code First来定义简单的领域类,并且如何使用...
    99+
    2023-06-29
  • 客户如何管理系统提升客户体验的关键
    随着科技的发展,企业对于客户管理的重视程度日益提高。客户管理系统(Customer Relationship Management,CRM)是企业提升客户体验的关键工具。本文将详细说明客户如何管理系统,以及如何通过这一系统提升客户体验。 客...
    99+
    2023-12-14
    客户 管理系统 关键
  • 如何利用PHP开发一个简单的客户关系管理系统
    随着互联网的发展和企业规模的扩大,客户关系管理系统(CRM)在企业管理中变得越来越重要。它能够帮助企业更好地管理客户信息、跟踪销售机会、提升客户满意度等。本文将介绍如何使用PHP开发一个简单的客户关系管理系统,以便帮助企业更好地管理客户关系...
    99+
    2023-10-21
    客户关系管理系统 PHP开发 简单
  • Spring里面一对多的关系如何使用注解实现
    这篇文章主要介绍Spring里面一对多的关系如何使用注解实现,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Spring里面一对多的关系可以用@OnetoMany注解来实现然后在实际使用中,如果要对从属对象按条件排序该...
    99+
    2023-06-21
  • 如何在PHP中实现在线客户关系管理系统?
    随着互联网的不断发展,越来越多的企业开始关注在线客户关系管理系统(Online Customer Relationship Management System, 简称OCRMS),以便更好地管理客户关系,提高客户满意度,促进企业的长期发展。...
    99+
    2023-05-14
    PHP编程 在线客户关系管理系统 数据库编程
  • python面向对象如何实现学员管理系统
    本文小编为大家详细介绍“python面向对象如何实现学员管理系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“python面向对象如何实现学员管理系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前言使用面向对...
    99+
    2023-06-30
  • Java中如何实现一个航空航班管理系统
    Java中如何实现一个航空航班管理系统,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Plane对象:在Plane对象里定义了飞机的编号id、航班号、目的地、起飞...
    99+
    2023-06-20
  • 如何利用java实现一个客户信息管理系统
    这篇文章将为大家详细讲解有关如何利用java实现一个客户信息管理系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。类图:Customer类:public class Customer&...
    99+
    2023-06-14
  • 如何使用C++实现一个简单的文件管理系统?
    如何使用C++实现一个简单的文件管理系统?概述:文件管理系统是计算机中非常重要的一个功能模块,它负责对计算机中的文件进行创建、修改、删除等操作。本文将介绍如何使用C++编程语言实现一个简单的文件管理系统,通过该系统,可以实现对文件的基本管理...
    99+
    2023-11-02
    C++ 实现 文件管理系统
  • win7系统下如何实现一键打开“Windows资源管理器”
      都说Win7系统蕴藏着多个快捷键的使用,如果你都把它掌握了,那么对我们系统使用来说,可谓如虎添翼。比如Win+E键,可以快速打开计算机资源管理器,特别对于办公用户来说,经常需要打开Windows7资源管理器。   ...
    99+
    2023-06-13
    Windows资源管理器 Windows 系统 win7 资源管理器
  • 如何使用C++实现一个简单的图书馆管理系统?
    如何使用C++实现一个简单的图书馆管理系统?图书馆是一个重要的知识和文化传播场所,而一个高效的图书馆管理系统能够提升图书馆的运作效率,方便读者借阅图书和管理图书馆资源。本文将介绍如何使用C++编程语言实现一个简单的图书馆管理系统。首先,我们...
    99+
    2023-11-02
    图书馆 C++ 管理系统
  • 分布式系统中,Java关键字如何帮助实现高效的负载管理?
    随着互联网的迅速发展,分布式系统在大型企业和机构中已经变得越来越常见。在这样的环境中,负载管理是非常重要的一项任务。在这篇文章中,我们将讨论Java关键字如何帮助实现高效的负载管理。 Java是一种流行的编程语言,被广泛应用于分布式系统中...
    99+
    2023-09-03
    关键字 分布式 load
  • 详解Java如何使用集合来实现一个客户信息管理系统
    目录1 客户类2 主界面3 方法(1)添加客户(2)判断编号是否被占用(3)修改客户信息(4)删除客户(5)客户列表(6)退出4 问题总结(1)字符串比较问题(2)修改客户不成功(3...
    99+
    2022-11-12
  • 如何使用MySQL构建一个多公司/分支机构会计系统表结构以支持多个实体的财务管理?
    如何使用MySQL构建一个多公司/分支机构会计系统表结构以支持多个实体的财务管理?在当今的商业环境中,许多企业都拥有多个子公司或分支机构。为了有效管理这些实体的财务活动,一种常见的做法是使用一个集中式的会计系统。本文将介绍如何使用MySQL...
    99+
    2023-10-31
    MySQL 表结构 会计系统 多公司 分支机构
  • MySQL实战:如何设计一个常用的后台管理系统的数据库结构
    部分数据来源:ChatGPT   什么是后台管理系统?         后台管理系统是指用于管理和维护网站或应用程序的后台界面系统,通常包含用户管理、权限管理、数据管理等功能,能够方便快捷地管理网站或应用程序。常见的后台管理系统有Cms、O...
    99+
    2023-09-26
    数据库 mysql sql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作