我有一份医院名单
医院模式:
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; }
}
我有与医院相关的用户。型号:
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; }
}
我需要在我的清单上还返回与医院相关联的用户号码。
如果我只有1家医院,这个查询很容易,但在我的情况下,我有一份医院名单
控制器:
public ActionResult Index()
{
var result = db.Hospitals.ToList();
return View(result);
}
我真的不知道如何在我的列表中包含查询结果(用户数)。
我的观点:
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.HospitalID }) |
@Html.ActionLink("Details", "Details", new { id=item.HospitalID }) |
@Html.ActionLink("Delete", "Delete", new { id=item.HospitalID })
</td>
</tr>
}
答案 0 :(得分:1)
看起来您需要确保在查询中返回用户...如下所示:
public ActionResult Index()
{
var result = db.Hospitals
.Include("UserHospitals")
.Include("UserHospitals.Users")
.ToList();
return View(result);
}
即使它们是虚拟的,延迟加载也不会发生,因为您正在剃刀视图中访问该属性。 Include
正在强制进行预先加载。
或者,展示另一个Dbset ......
public DbSet<User> Users { get; set; }
现在您可以选择以下内容:
db.Users.Where(x => !x.active).ToList();
让我知道你是如何进行的:)