我正在构建一个使用 Entity Framework 4.1 的 ASP.Net MVC 3 Web 应用程序。我还将工作单元模式与通用存储库一起使用。我的模型中有两个实体,Shift和ShiftDate。请参阅下图了解它们的结构。这个想法是,一个Shift可以有 1 个或多个ShiftDates,一个ShiftDate只能属于一个Shift。
我希望创建一个查询,它将像这样返回所有班次的列表
public IList<Shift> GetShifts(int id)
{
return _UoW.Shifts.Get(s => s.organisationID == id).OrderBy(s => s.startDate).ToList();
}
然后在我的 Razor 视图中,我希望使用 foreach 循环并列出每个 Shift 的详细信息。其中一个细节是每个Shift具有的ShiftDates总数。为此,我会做类似的事情
foreach(var shiftDate in Model.Shifts)
{
@Html.DisplayFor(modelItem => item.ShiftDates.Count)
}
这工作正常,但是,我希望计数排除shiftDateStatusID设置为 442 的 ShiftDates。为此,我尝试将我的 Linq 查询修改为此
return _UoW.Shifts.Get(s => s.organisationID == id && s.ShiftDates.Any(sd => sd.shiftDateStatusID != 442))
.OrderBy(s => s.startDate).ToList();
但是,这仍然会拉回 shiftDateStatusID 为 442 的 ShiftDates。
希望这是有道理的。
任何反馈将不胜感激。
谢谢。