我已经在我的领域类(简体)以下如何创建可导航到多个实体类型的导航属性?
public enum JobType
{
SalesOrder = 1,
StockOrder = 2
}
public class SalesOrder : LoggedEntity
{
public string Name { get; set; } // and other fields
}
public class StockOrder : LoggedEntity
{
public string Name { get; set; } // and other fields
}
public class Job : LoggedEntity
{
public int JobType { get; set; } // jobtype enum
public virtual LoggedEntity LinkedEntity { get; set; }
}
我的背景是如下:
public class Context : DbContext
{
public DbSet<Job> Jobs { get; set; }
public DbSet<StockOrder> StockOrders { get; set; }
public DbSet<SalesOrder> SalesOrders { get; set; }
}
当我运行迁移我得到[1]所以,用一种抽象的存在好像不工作描述这里]错误。
我的问题是,我如何创建一个导航属性,可以导航到多个实体类型?
如果JobType = SalesOrder,那么我想导航到销售订单,如果JobType = StockOrder,那么我想导航到库存订单。
我想用一个表每层次结构战略[见TPH这里] [2]
_I我想我正在使用一个表每Heirarchy Strategy_你的意思是说,所有的类都映射到一个表?我可以想象你用SalesOrder和StockOrder来做这件事,但是Job是一个完全不同的实体。也许你的问题更深入,即使用基类“LoggedEntity”。这大大地影响了你的继承。 – 2013-03-23 22:45:53
LoggedEntity实际上并不是一个表格。它是抽象的,所有在其中定义的字段都属于每个表格。我想我可能需要探索为StockOrder和SalesOrder添加一个不同的类以继承 – 2013-03-23 22:58:20
啊!正是我在做什么,看到我的答案。 – 2013-03-23 23:09:59