我已經在我的領域類(簡體)以下如何創建可導航到多個實體類型的導航屬性?
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