EntityFramework 实体拆分与表拆分

摘录自https://msdn.microsoft.com/zh-cn/data/jj591617

* 将实体类型的 CLR 属性映射到数据库中的多个表(实体拆分)

实体拆分允许一个实体类型的属性分散在多个表中。在以下示例中,Department 实体拆分到两个表中:Department 和 DepartmentDetails。实体拆分通过多次调用 Map 方法将一部分属性映射到特定表。

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Department>() .Map(m => { m.Properties(t => new { t.DepartmentID, t.Name }); m.ToTable("Department"); }) .Map(m => { m.Properties(t => new { t.DepartmentID, t.Administrator, t.StartDate, t.Budget }); m.ToTable("DepartmentDetails"); });
}

* 将多个实体类型映射到数据库中的一个表(表拆分)
以下示例将使用同一个主键的两个实体类型映射到同一个表。

modelBuilder.Entity<OfficeAssignment>() 
    .HasKey(t => t.InstructorID); 
             
modelBuilder.Entity<Instructor>() 
    .HasRequired(t => t.OfficeAssignment) 
    .WithRequiredPrincipal(t => t.Instructor); 
 
modelBuilder.Entity<Instructor>().ToTable("Instructor"); 
 
modelBuilder.Entity<OfficeAssignment>().ToTable("Instructor");
原文地址:https://www.cnblogs.com/gmcn/p/5879449.html