配置多对多关系

时间:2016-05-05 13:37:12

标签: c# asp.net-mvc entity-framework

为此我有3个型号:医院,AspNetUsers,UserHospitals。

这是UserHospitals模型:

public class UserHospital
{
    [Key]
    public int UserHospitalID { get; set; }

    public int HospitalID { get; set; }
    public Hospital Hospitals { get; set; }

    public string Id { get; set; }
    public ApplicationUser Users { get; set; }
}

有了它,我可以在此表中添加用户ID和医院ID。

现在,我需要检查用户所连接的医院。

在我的返回医院名单的控制器上,我只需要返回用户有联系的医院。

这将返回所有医院,如果用户与UserHospitals上的医院有联系,我该如何过滤它?

    public ActionResult Index()
    {
        return View(db.Hospitals.ToList());
    }

我不想添加一个连接模型或其他

的新视图模型

==编辑==

医院模式

public class Hospital
{
    [Key]
    public int HospitalID { get; set; }

    public string Name { get; set; }

    public virtual ICollection<HospitalSpeciality> HospitalSpecialities { get; set; }
    public virtual ICollection<UserHospital> UserHospitals { get; set; }
}

enter image description here

1 个答案:

答案 0 :(得分:1)

试试这个:

 public ActionResult Index()
 {
    var result =db.Hospitals.Include("UserHospitals").where(x=> x.UserHospitals.Any(x=>x.Id== userId)).ToList();
    return View(result);
 }