我有医院的列表
医院型号:
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; }
}
在我的列表中,我还需要返回与医院关联的用户的编号。
如果我只有一家医院,这个查询很容易,但在我的场景中,我有一个医院列表
控制器:
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>
}
看起来您需要确保在查询中返回用户。。。像这样:
public ActionResult Index()
{
var result = db.Hospitals
.Include("UserHospitals")
.Include("UserHospitals.Users")
.ToList();
return View(result);
}
即使它们是虚拟的,也不会发生延迟加载,因为您正在剃刀视图中访问属性。Include
正在强制加载Eagle。
或者,公开另一个数据库集。。。
public DbSet<User> Users { get; set; }
现在您可以选择以下内容:
db.Users.Where(x => !x.active).ToList();
让我知道你的进展:)