Linq Include not working



我有这个linq表达式

ActionPlan
    .Include(x => x.Goal)
    .Include(x => x.Responsibles)
    .Include(x => x.Goal.EducationalPlan)
    .AsNoTracking()
    .Where(x => x.State == State.Active && x.Goal.State == State.Active && x.Goal.EducationalPlan.State == State.Active)
    .Where(x => x.Responsibles.Any(r => r.PersonId == pes_id))
    .Distinct()
    .Select(x => x.Goal)
    .ToList();

包含的教育计划不工作,为什么?其他工作正常,教育计划是一个对象而不是一个列表。

对于多个级别,您应该这样做:

ActionPlan
    .Include(x => x.Goal)
    .Include(x => x.Responsibles)
    .Include(x => x.Goal.Select(y => y.EducationalPlan))
    .AsNoTracking()
    .Where(x => x.State == State.Active && x.Goal.State == State.Active && x.Goal.EducationalPlan.State == State.Active)
    .Where(x => x.Responsibles.Any(r => r.PersonId == pes_id))
    .Distinct()
    .Select(x => x.Goal)
    .ToList();

或者试试这个:

ActionPlan
    .Include(x => x.Goal)
    .Include(x => x.Responsibles)
    .Include("Goal.EducationalPlan")
    .AsNoTracking()
    .Where(x => x.State == State.Active && x.Goal.State == State.Active && x.Goal.EducationalPlan.State == State.Active)
    .Where(x => x.Responsibles.Any(r => r.PersonId == pes_id))
    .Distinct()
    .Select(x => x.Goal)
    .ToList();

最新更新