2012-05-28 61 views
0

如何使用連接表從一個表中選擇具有其他核心鍵的所有記錄。我有table dbo.Patients和dbo.Hospitals和dbo.PatientHospitals,它們都有來自這兩個表的主鍵。我需要從處於dbo.Hospitals dbo.Patients所有recods,那就是在加入表dbo.PatientHospitals,是這樣的:實體框架4.3 CF在多對多關係中選擇所有記錄?

var currentHospital = db.Hospitals.Single(x => x.User_Id == UserID); 

var model = db.Patients.Include("Hospitals") 
       .Select(x => x.Hospitals == currentHospital); 

回答

0

在代碼中第一個,你不需要爲簡單多對一附加表一對多的關係。你可以定義你的實體像這樣

public class Patient 
{ 
    ...  
    public virtual ICollection<Hospital> Hospitals { get; set; }  
    ... 
} 

public class Hospital 
{ 
    ...  
    public virtual ICollection<Patient> Patients { get; set; }  
    ... 
} 

然後你可以只寫currentHospital.Patients

+0

我有我的實體就是這樣,和CF確實對自己產生第三個表,我的問題是如何選擇的所有記錄一個屬於另一個,例如,來自一家醫院的所有患者。 –

+0

要澄清,通過「CF」你的意思是代碼第一,對嗎? – archil

+0

是的,我願意,謝謝。我的觀點是,選擇屬於特定醫院的所有患者,但邏輯是,選擇醫院和她的所有患者,謝謝,解決了它! –