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