Entity Framework表拆分为多个实体的示例分析
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,小编给大家分享一下Entity Framework表拆分为多个实体的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!概念表拆分:一个表拆分成多个实体,例如Photograph表
千家信息网最后更新 2026年11月04日Entity Framework表拆分为多个实体的示例分析
小编给大家分享一下Entity Framework表拆分为多个实体的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
概念
表拆分:一个表拆分成多个实体,例如Photograph表,可以拆分为Photograph和PhotographFullImage两张表。
1、Photograph实体结构:
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 CodeFirstTableSplit.Model{ /// /// 缩略图类 /// public class Photograph { /// /// 设置PhotoId是主键 自动增长 /// [Key] [DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity)] public int PhotoId { get; set; } public string Title { get; set; } /// /// 缩略图 /// public byte[] ThumbnailBite { get; set; } /// /// Photograph通过导航属性引用PhotographFullImage /// [ForeignKey("PhotoId")] public virtual PhotographFullImage PhotographFullImage { get; set; } }}2、PhotographFullImage实体结构:
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 CodeFirstTableSplit.Model{ public class PhotographFullImage { [Key] public int PhotoId { get; set; } /// /// 高分辨率 /// public byte[] HighResolutionBits { get; set; } /// /// PhotographFullImage通过导航属性引用Photograph /// [ForeignKey("PhotoId")] public virtual Photograph Photograph { get; set; } }}3、创建数据上下文对象子类:
using CodeFirstTableSplit.Model;using System;using System.Collections.Generic;using System.Data.Entity;using System.Linq;using System.Text;using System.Threading.Tasks;namespace CodeFirstTableSplit.DatabaseContext{ public class EFDbContext :DbContext { public EFDbContext() : base("name=Default") { } public DbSet Photographs { get; set; } public DbSet PhotographFullImages { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { // 设置主体 modelBuilder.Entity().HasRequired(p => p.PhotographFullImage).WithRequiredPrincipal(t => t.Photograph); // 生成同一张表:设置两个实体有相同的表名 modelBuilder.Entity().ToTable("Photograph"); modelBuilder.Entity().ToTable("Photograph"); base.OnModelCreating(modelBuilder); } }} 4、使用数据迁移生成数据库结构,查看生成后的结构:
5、写入数据
using CodeFirstTableSplit.DatabaseContext;using CodeFirstTableSplit.Model;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace CodeFirstTableSplit{ class Program { static void Main(string[] args) { using (var context = new EFDbContext()) { // 写入数据 byte[] thumbBits = new byte[100]; byte[] fullBits = new byte[2000]; var photo = new Photograph() { Title = "李四", ThumbnailBite = thumbBits }; var fullImage = new PhotographFullImage() { HighResolutionBits = fullBits }; photo.PhotographFullImage = fullImage; context.Photographs.Add(photo); // 保存 context.SaveChanges(); } Console.WriteLine("创建成功"); Console.ReadKey(); } }}6、查询数据
看完了这篇文章,相信你对"Entity Framework表拆分为多个实体的示例分析"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
实体
数据
结构
多个
生成
示例
分析
属性
篇文章
导航
相同
成功
上下
上下文
两个
主体
分辨率
子类
完了
对象
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
瑰夏咖啡
互联网科技公司
南京欣网互联网络科技
互联网科技公司经营范围
新华互联网科技学校
科技互联网项目
齐家互联网科技
唐信互联网科技
鑫亿盛互联网科技
上海喔噻互联网科技
广州凡科互联网科技
国外互联网科技网站
成都仁贤领冠互联网科技有限公司
银川新华互联网科技学校地址
深圳艾果互联网通讯科技
沐思想互联网科技有限公司
江苏互联网智能科技产品出厂价
保山浩联互联网科技有限公司
互联网企业和网络科技有限公司
高科技和互联网的现代国家
南京欣网互联网络科技有限公司
湖南永感互联网科技有限公司
互联网科技垄断
互联网科技的
汇久创客互联网科技
润盈互联网科技
宁波青枫互联网科技有限公司
迪庆互联网科技招生
企晟互联网信息科技有限公司
2021世界互联网领先科技成果发布