运维开发网

实体框架实体拆分多个表

运维开发网 https://www.qedev.com 2022-09-11 16:37 出处:网络
这篇文章介绍了Entity?Framework实体拆分多个表的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 一、概念

这篇文章介绍了Entity?Framework实体拆分多个表的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 一、概念

实体拆分:一个实体拆分成多个表,比如产品实体,可以拆分成两个表:产品表用于存储商品的文字信息,ProductWebInfo用于存储商品的图片信息,两个表通过SKU关联。

1、Product实体类结构:using System;using System.Collections.Generic;using System.ComponentModel.DataAnnotations;using System.ComponentModel.DataAnnotations.Schema;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 实体拆分.Model{ public class Product { [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] //设置主键需要自己填充 public int SKU { get; set; } public string Description { get; set; } public decimal Price { get; set; } public string ImageURL { get; set; } }}2、数据实体类结构:using System;using System.Collections.Generic;using System.Data.Entity;using System.Linq;using System.Text;using System.Threading.Tasks;using 实体拆分.Model;namespace 实体拆分.DatabaseContext{ public class EFDbContext :DbContext { public EFDbContext() : base("name=Default") { } public DbSetlt;Productgt; Products { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entitylt;Productgt;().Map(p =gt; { p.Properties(m =gt; new { m.SKU, m.Price, m.Description }); p.ToTable("Product"); }) .Map(p =gt; { p.Properties(m =gt; new { m.SKU, m.ImageURL }); p.ToTable("ProductWebInfo"); }); base.OnModelCreating(modelBuilder); } }}3、使用数据迁移生成数据库,生成后的表结构如下图所示:


4、测试数据:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using 实体拆分.DatabaseContext;namespace 实体拆分{ class Program { static void Main(string[] args) { using (var context = new EFDbContext()) { context.Products.Add(new Model.Product() { SKU=293, Description="C#高级编程(第10版)", Price=299 , ImageURL="http://image.baidu.com/1.jpg" }); // 保存 context.SaveChanges(); } Console.WriteLine("创建成功"); Console.ReadKey(); } }}5、运行程序,查询数据库结果


总结

要将一个实体拆分成多个表:

1.在项目中创建一个新类,并从DbContext类继承。
2。创建产品的POCO类。
3。添加属性:DbSetlt在新建的DbContext子类中。Productgt。。
4。重写DbContext类的OnModelCreating()方法。

单击此处下载示例代码。

这就是这篇关于实体框架实体拆分多个表的文章。希望对大家的学习有所帮助

0

精彩评论

暂无评论...
验证码 换一张
取 消