我有一个类似
的DbContext类abstract public class CostCenter
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
abstract public Guid ID
{
get;
set;
}
abstract public string CostCenterName
{
get;
set;
}
}
但是我无法运行add-migration和update-database命令它给我错误,注意抽象类是我的需要,
答案 0 :(得分:5)
您应该从CostCenter
派生一个新类,并将派生类作为DbSet
添加到DbContext
。
示例:
[Table("SomeCostCenter")]
public class SomeCostCenter : CostCenter
{
}
和
[Table("AnotherCostCenter")]
public class AnotherCostCenter : CostCenter
{
}
并且,在你的DbContext上:
DbSet<SomeCostCenter> { get; set; }
DbSet<AnotherCostCenter> { get; set; }
请注意,这些设置为使用Table-Per-Type(TPT)继承将每个派生类型存储在单独的表中。还有其他选项,例如Table-Per-Hierarchy(TPH)或Table-Per-Concrete类(TPC)。您可以搜索这些术语中的每一个,以确定哪种方法最适合您的方案。