【发布时间】:2017-02-10 10:52:16
【问题描述】:
我首先使用实体框架代码尝试创建一个数据库,其中我有几个共享唯一主键的表。
我的域类具有以下结构,并希望将 FirstClass、SecondClass、ThirdClass 都创建为链接到存储共享密钥的 BaseTable 的表。我在这个例子中包含了 SharedClass 类,因为我的项目中也有这个结构。
[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; }
}
目前发生的情况是,FirstClass、SecondClass 和 ThirdClass 都在创建中,但都有自己的主键,并且没有创建 BaseTable。
在查看了这里提出的几个类似问题后,我不确定我是否遗漏了什么。
【问题讨论】:
-
您能否显示在您的 DbContext 中定义的相关 DbSet 以及流畅的配置(如果有)。
-
所以我在上下文中没有上述类作为 DbSet,因为它们都不是聚合路由,也没有 Fluent API 配置。
标签: c# asp.net sql-server entity-framework ef-code-first