实体框架4.3 CF选择多对多关系中的所有记录?

时间:2012-05-28 17:51:30

标签: c# entity-framework select entity-framework-4 lambda

如何使用连接表从一个表中选择与其他表具有共同密钥的所有记录。我有表dbo.Patients和dbo.Hospitals和dbo.PatientHospitals,它们都有来自两个表的主键。我需要dbo中的所有recod。dbo.Hatals中的患者,即加入表dbo.PatientHospitals,如:

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

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

1 个答案:

答案 0 :(得分:0)

在代码中,您不需要额外的表来实现简单的多对多关系。您可以像这样定义您的实体

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

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

然后你可以写currentHospital.Patients