我有医院和医学专业。
“我的医疗专业”页面以这种方式按医院ID返回数据:
localhost/MedicalSpecialities/1,1是HospitalID。如果我手动更改链接,我可以访问任何医院的信息。
我有这样的与医院有关联的用户:

我需要查询用户关联的医院ID,并检查当前的HospitalID是否在列表中。
此返回用户已连接的所有医院:
var userID = User.Identity.GetUserId();
var result = db.Hospitals.Include("UserHospitals")
.Where(x => x.UserHospitals
.Any(u => u.Id == userID))
.ToList();发布于 2016-05-05 14:33:05
您基本上可以更新Any()方法中的条件,以包含针对HospitalId列的检查。
var hospitalId =5;
var result = db.Hospitals
.Include(y=>y.UserHospitals)
.Where(x => x.UserHospitals.Any(u => u.Id == userID
&& u.HospitalID==hospitalId ))
.ToList();如果您只期望有一家医院来治疗这种情况,您也可以考虑使用FirstOrDefault()方法。
var singleHospital = db.Hospitals
.Include(y=>y.UserHospitals)
.Where(x => x.UserHospitals.Any(u => u.Id == userID
&& u.HospitalID==hospitalId ))
.FirstOrDefault();
if(singleHospital!=null)
{
//Safely use it.
}https://stackoverflow.com/questions/37053194
复制相似问题