在我的查询中,我有多个ThenInclude语句来包含所有相关的数据。在最后一个include语句中,我想添加一个条件,但由于我的linq语句,我收到了无效的lambda表达式响应。
Class Sample1
{
public int Id { get; set; }
public ICollection<Sample2> S2 { get; set;}
}
Class Sample2
{
public Sample3 S3 { get; set; }
public Sample1 S1 { get; set;}
}
Class Sample3
{
public int Id { get; set; }
public ICollection<Sample4> S4 { get; set;}
}
Class Sample4
{
public Sample3 S3 { get; set; }
public Sample5 S5 { get; set;}
}
Class Sample5
{
public int Id { get; set; }
public bool isPresent { get; set;}
}
我需要的是当我查询 示例1 时,我希望它包含从 示例3 开始的所有内容,但仅在 示例5.IsPresent 为 true 时才包括 示例4。 这是我发送的查询。
var sample = await dbcontext.Sample1.Include(s1 => s1.S2).ThenInclude(s2 => s2.S3)
.ThenInclude(s3 => s3.S4.Where(s4 => s4.S5.isPresent)).FirstOrDefaultAsync(s => s.Id==id);
我尝试使用 Any 替换 Where,但也不起作用。 对此,我真的非常感激任何帮助。我已经尝试了一些相关问题答案中建议的方法,但似乎都不起作用。