0
我有:Users
,Hospitals
,UserHospitals
,UserAcesses
和UserAcessesViewModel
表/模型。LINQ查询过滤页面结果
我有一个显示所有用户访问的页面。
我通过链接发送给医院ID/UserAcess/1
我需要查询,如果用户对表UserHospitals
到医院ID的连接,如果这是真的,显示来自用户所有acesses被连接到相同的医院ID。
这就是我和我的查询是不正确的:
public ActionResult Index(int? id, string searchString, string sortOrder, string SelectedUserId)
{
if(!User.IsInRole("Admin"))
{
if (id == null)
{
return View("Error");
}
else if (!db.Hospitals.Any(o => o.HospitalID == id))
{
return View("Error");
}
var model = new UserAccessViewModel();
var userAccesses = db.UserAccesses.Include(u => u.User);
ViewBag.IDSortParm = sortOrder == "ID_asc" ? "ID_desc" : "ID_asc";
ViewBag.EmailSortParm = sortOrder == "Email_asc" ? "Email_desc" : "Email_asc";
ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";
ViewBag.NameSortParm = sortOrder == "Name_asc" ? "Name_desc" : "Name_asc";
var userID = User.Identity.GetUserId();
var result = db.Hospitals.Include("UserHospitals")
.Where(x => x.UserHospitals
.Any(u => u.Id == userID && u.HospitalID == id))
.FirstOrDefault();
if (result != null)
{
userAccesses = db.UserAccesses.Include(u => u.User).Include("UserHospitals").Where(w => w.User.any())));
}
else
{
return View("Error");
}
}
我的模型:
医院
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; }
}
UserHospital
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; }
}
UserAcesses
public class UserAccess
{
[Key]
public int UserAcessID { get; set; }
public DateTime Access { get; set; }
public string UserID { get; set; }
[ForeignKey("UserID")]
public ApplicationUser User { get; set; }
}
UserAcessViewModel
public class UserAccessViewModel
{
[Key]
public int ID { get; set; }
public IEnumerable<UserAccess> UserAccesses { get; set; }
[Display(Name = "Selecionar Utilizador")]
public string SelectedUserId { get; set; }
public IEnumerable<SelectListItem> UserNamesList;
}
如果您需要abount我院更多信息 - UserHospital - 用户,这是here
感谢您的回答,但我不明白它 –
你想要连接到医院的所有访问id.Am我是吧? – stylishCoder
我希望来自用户的所有访问都具有连接到UserHospitals上当前医院ID的ID。 [这是你的代码的结果](https://i.gyazo.com/663b08c36fa1dd3c740577153b07a6be.png) –