我似乎找不到正确的 where 子句来仅获取我需要的项目。
我有部门,这些包含类别,这些包含项目。这些是类:
public class Division {
public string Description { get; set; }
public List<Category> Categories { get; set; }
}
public class Category : IdEntity
{
public string Description { get; set; }
public Guid DivisionId { get; set; }
public List<Item> Items { get; set; }
}
public class Item
{
public Guid CategoryId { get; set; }
public DateTime Date { get; set; }
public string Description { get; set; }
}
我需要的是一个在参数中带有 Id 的部门,该部门的所有类别以及每个类别都有特定日期的项目。
所以现在我这样做:
public Division GetFullDivisionByIdAndDate(Guid id, DateTime date)
{
using (new ChangeTrackingScope(ChangeTracking.Disabled))
{
var divisionGraph = new Graph<Division>().Include(d => d.Categories.Select(c => c.Items));
var division = _divisionDL.GetFullDivisionByIdAndDate(id, divisionGraph, date);
return division;
}
}
比在 DL 我做的
public Division GetFullDivisionByIdAndDate(Guid id, Graph<Division> graph, DateTime date)
{
using (var db = new ContextScope<DatabaseContext>())
{
var q = graph.ApplySetReferences(db.Context.Divisions).AsNoTracking();
return q.SingleOrDefault(p => p.Id == id);
}
}
在这里,我得到了所有类别的划分(到目前为止一切都很好),但我也得到了所有项目,我只需要将日期作为参数给出的项目。任何人都知道如何做到这一点?