我有医院和医疗专业。
My Medical Specialties页面以这种方式按医院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();
答案 0 :(得分:2)
您基本上可以更新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.
}