我知道,当使用表每具体类型继承时,所有派生类都共享相同的标识。我想做的是为Guest和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
}
如果我使用不同的身份增量,Guest的主键看起来像:1、3、5、6和AccountOwner2、4、6、8。
现在的问题是,
如何实现不同的主键自动递增
我错过什么了吗?你有更好的解决方案吗
我不想改变我的数据库结构
您不能实现不同的自动增量
尽管我不想改变我的结构,但我还是决定使用"按层次表"而不是"按层次图"。
我现在有了三个不同的表,而不是一个Accounts,并且我对不同的类型使用了Descriminator。因为我只有一个表,所以它们都共享相同的自动增量。