2015-01-08 80 views
1

我需要映射我域中3個域模型之間的關係,其中域模型之一是關係模型的聚合根。作爲EF Code First的主鍵的外鍵?

public class Entity1 { 
    public int Id { get; set; } 
} 

public class Entity2 { 
    public int Id { get; set; } 
} 

public class SuperEntity { 
    public int Id { get; set; } 
    // bounded context for relationship classes 
} 

的關係實體應該是這樣的

public class Relationship { 
    public int RelationshipId { get; set; } 
    public Entity1 Entity1 { get; set; } 
    public Entity2 Entity2 { get; set; } 
} 

在此之後,超級實體應該簡單地看是這樣的:現在

public class SuperEntity { 
    public int Id { get; set; } 
    public ICollection<Relationship> Relationships { get; set; } 
} 

,一個可能性地圖這是使關係唯一的實體與它自己的關鍵字以及關係中唯一索引中的兩個實體。但是,鑰匙只能用於「關鍵目的」,沒有任何有意義的價值。 Desireable將是一個關係表是這樣的:

Table_Relationships 
        [ SuperEntity_Id // Foreign-key to SuperEntity 
    PrimaryKey  [ Entity1_Id // Foreign-key to Entity1 
        [ Entity2_Id // Foreign-key to Entity2 

意思就是說Table_Relationships的主鍵是SuperEntity_Id + Entity1_Id + Entity2_Id。

是否可以在EF Code First中映射此映射?

回答

相關問題