实体框架TPC复制主键

时间:2015-11-29 00:19:40

标签: sql entity-framework

我知道当使用table per concrete type继承时,所有派生类都共享相同的标识。我想要做的是为访客 AccountOwner设置单独的身份。

经过几个小时的谷歌搜索,我找到了两个解决方案。一种是为派生类使用不同的种子,(我知道如何实现它,但我不喜欢它),第二种是使用不同的身份增量。

基类:

public abstract class User
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int UserID { get; set; }
}

派生类:

public class Guest : User
{
    //Other properties here
}

派生类:

public class AccountOwner: User
{
    //Other properties here
}

如果我使用不同的身份增量,访客的主键看起来像:1,3,5,6和 AccountOwner 2,4,6, 8。

现在的问题是,

如何实现不同的主键自动增量?

我错过了什么吗?你有更好的解决方案吗?

我不想改变我的数据库结构。

1 个答案:

答案 0 :(得分:0)

您无法实现不同的自动增量。

我决定使用Table per Hierarchy而不是Table per Hierarchy,即使我不想改变我的结构。

而不是我现在拥有的三个不同的表,帐户,我正在为不同类型使用描述符。因为我只有一个表,所以它们共享相同的自动增量。