![](/img/trans.png)
[英]How to create a table with two foreign keys pointing to the same table using Entity Framework Code First
[英]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
,其中contact1
和contact2
應該作為FK鏈接到contactId列。 我正在使用實體框架Modelbuilder.Entity
功能為代表類的表創建數據關系。
我是數據庫設計和實體框架的新手。 可以在一個鏈接表中完成此操作,還是需要走另一條路線?
我考慮過的另一種方法是創建僅將contact1
和contact2
存儲為整數的表,因為僅在交叉引用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.