2013-10-12 213 views
0

LOL。這可能是EF進行建模最複雜的情​​況嗎?我甚至懷疑這種情況是否得到支持。 我的業務就像我需要知道哪個應用程序與其他應用程序匹配的原因。因此,上述相互關係的表看起來像這樣:EF中的同一表格與額外列之間的多對多關係

PrimaryApplicationID,SecondaryApplicationID,MatchedRuleID

確定。現在甚至有可能我可以用EF來表示這種關係?如果是的話,我需要在數據庫端做什麼特別的事情?我使用的是數據庫優先的方法,但這並不重要,是嗎?

感謝您的任何線索。

回答

1

使用數據庫,首先您將創建三個表,例如:

  • Applications

    ApplicationId   int NOT NULL PK 
    ...Other columns... 
    
  • Rules

    RuleId     int NOT NULL PK 
    ...Other columns... 
    
  • MatchingApplications

    PrimaryApplicationId int NOT NULL PK, FK to Applications table 
    SecondaryApplicationId int NOT NULL PK, FK to Applications table 
    MatchedRuleId   int NOT NULL FK to Rules table 
    

MatchingApplications雙-PK意在複合鍵。雙FK的意思是兩個單獨的外鍵關係到同一個表Applications.您無法爲兩個關係啓用級聯刪除,因爲SQL Server不允許在同一個表之間使用多個級聯刪除路徑。

EF應創建該數據庫架構三個實體:

  • Application有兩個集合與元素類型MatchingApplication
  • Rule實體,一個集合與元素類型MatchingApplication
  • MatchingApplication實體有兩個導航引用實體類型Application和類型Rule的一個導航參考。
相關問題