我有一个DbContext类
abstract public class CostCenter
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
abstract public Guid ID
{
get;
set;
}
abstract public string CostCenterName
{
get;
set;
}
}
Run Code Online (Sandbox Code Playgroud)
但我无法运行add-migration和update-database命令,它给我错误,请注意,这里需要抽象类,
你应该从派生新类CostCenter并添加派生类作为DbSet您DbContext。
例子:
[Table("SomeCostCenter")]
public class SomeCostCenter : CostCenter
{
}
Run Code Online (Sandbox Code Playgroud)
和:
[Table("AnotherCostCenter")]
public class AnotherCostCenter : CostCenter
{
}
Run Code Online (Sandbox Code Playgroud)
并且,在您的DbContext上:
DbSet<SomeCostCenter> { get; set; }
DbSet<AnotherCostCenter> { get; set; }
Run Code Online (Sandbox Code Playgroud)
请注意,将它们设置为使用“每类型表(TPT)”继承来将每个派生类型存储在单独的表中。还有其他选项,例如逐层表(TPH)或逐表类(TPC)。您可以搜索这些术语中的每一个,以确定哪种方案最适合您的情况。
这可能值得快速阅读:http : //weblogs.asp.net/manavi/inheritance-mapping-strategies-with-entity-framework-code-first-ctp5-part-1-table-per-hierarchy-tph
| 归档时间: |
|
| 查看次数: |
2677 次 |
| 最近记录: |