簡體   English   中英

實體框架-表需要兩個指向同一表的外鍵

[英]Entity Framework - table needs two foreign keys pointing at same table

我正在使用數據庫包含"Contacts" : Id, FirstName, LastName, MobileNumber表的現有項目進行工作"Contacts" : Id, FirstName, LastName, MobileNumber等。

我現在想實現一個表,可以將成對的聯系人鏈接在一起。 我建立了一個名為contactMatches: Id, contact1, contact2的類contactMatches: Id, contact1, contact2 ,其中contact1contact2應該作為FK鏈接到contactId列。 我正在使用實體框架Modelbuilder.Entity功能為代表類的表創建數據關系。

我是數據庫設計和實體框架的新手。 可以在一個鏈接表中完成此操作,還是需要走另一條路線?

我考慮過的另一種方法是創建僅將contact1contact2存儲為整數的表,因為僅在交叉引用db中的其他表時才使用該表。 這似乎很糟糕,因為contactMatches表可能包含不存在的contactId,因此需要采取措施以防萬一。

什么是做我想要的最好的方法,有什么想法?

謝謝,JK

您可以在重寫的OnModelCreating方法中執行此操作

modelBuilder.Entity<Contacts>()
            .HasMany(e => e.ContactMatches1)
            .WithRequired(e => e.Contact1)
            .HasForeignKey(e => e.Id);

        modelBuilder.Entity<Contacts>()
            .HasMany(e => e.ContactMatches2)
            .WithRequired(e => e.Contact2)
            .HasForeignKey(e => e.Id);

假設ContactMatches1 + 2是Contacts類中的導航屬性

public virtual ICollection<ContactMatches> ContactMatches1 { get; set; }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM