C# 代码优先在表之间共享主键
我首先使用实体框架代码尝试创建一个数据库,在这个数据库中,我有几个表共享唯一的主键 我的域类有以下结构,希望FirstClass、SecondClass、ThirdClass都能创建为表,链接到存储共享键的基表。我在这个例子中包括了SharedClass类,因为我的项目中也有这个结构C# 代码优先在表之间共享主键,c#,asp.net,sql-server,entity-framework,ef-code-first,C#,Asp.net,Sql Server,Entity Framework,Ef Code First,我首先使用实体框架代码尝试创建一个数据库,在这个数据库中,我有几个表共享唯一的主键 我的域类有以下结构,希望FirstClass、SecondClass、ThirdClass都能创建为表,链接到存储共享键的基表。我在这个例子中包括了SharedClass类,因为我的项目中也有这个结构 [Table("BaseTable")] public abstract class BaseClass { public int Id { get; set; } } public abstract c
[Table("BaseTable")]
public abstract class BaseClass {
public int Id { get; set; }
}
public abstract class SharedClass : BaseClass {
public string SharePropertyOne { get; set; }
public string SharePropertyOne { get; set; }
}
[Table("FirstClass")]
public abstract class FirstClass : SharedClass {
public string SharePropertyOne { get; set; }
public string SharePropertyOne { get; set; }
}
[Table("SecondClass")]
public abstract class SecondClass : SharedClass {
public string SharePropertyOne { get; set; }
public string SharePropertyOne { get; set; }
}
[Table("ThirdClass")]
public abstract class ThirdClass : SharedClass {
public string SharePropertyOne { get; set; }
public string SharePropertyOne { get; set; }
}
目前正在发生的事情是,第一类、第二类和第三类都在创建中,但它们都有自己的主键,并且没有创建基表
我不确定我是否遗漏了一些问题,在这里,我看了几个问题,问了一些类似的问题 默认情况下,甚至通过在基类上应用
Table
数据注释,EF继承也不会被激活
可以通过向派生的DbContext
添加DbSet
来激活它:
public DbSet<BaseClass> BaseClass { get; set; }
公共数据库集基类{get;set;}
这也允许您使用多态查询,或使用流畅的配置-最基本的要求是:
modelBuilder.Entity<BaseClass>();
modelBuilder.Entity();
能否显示在DbContext中定义的相关数据库集以及fluent配置(如果有)。因此,我在上下文中没有将上述类作为数据库集,因为它们都不是聚合路由,也没有fluent API配置。