0
我有以下表,如何在應該有多個表的表中映射外鍵?
標識 的EntityType ENTITYID 消息
根據的EntityType是什麼,它將被映射到不同的表
如果的EntityType爲1,則映射表是Table1 如果EntityType是2,那麼映射表是表2
如何在實體框架工作中創建映射配置?
我使用MVC4和EF5
我有以下表,如何在應該有多個表的表中映射外鍵?
標識 的EntityType ENTITYID 消息
根據的EntityType是什麼,它將被映射到不同的表
如果的EntityType爲1,則映射表是Table1 如果EntityType是2,那麼映射表是表2
如何在實體框架工作中創建映射配置?
我使用MVC4和EF5
我也有類似的設計問題,我無法找到一個EF(乾淨)的方式來做到這一點。如果您考慮底層數據庫,那麼它將是單個字段,它是引用不同表的外鍵 - 甚至可能嗎?
我可以提出兩種替代方法。首先,你可以定義可選的關係:
public class EntityTypeMap
{
public int Id { get; set; }
public virtual EntityType1 EntityType1 { get; set; }
public int? EntityType1Id { get; set; }
public virtual EntityType2 EntityType2 { get; set; }
public int? EntityType2Id { get; set; }
public string Message { get; set; }
}
第二(更好)選擇是創建單獨的模型,但是從同一個基類派生:
public class BaseMap
{
public int Id { get; set; }
public string Message { get; set; }
}
public class EntityType1Map : BaseMap
{
public virtual EntityType1 EntityType1 { get; set; }
public int? EntityType1Id { get; set; }
}
public class EntityType2Map : BaseMap
{
public virtual EntityType2 EntityType2 { get; set; }
public int? EntityType1Id { get; set; }
}