提问人:guirms 提问时间:11/8/2023 最后编辑:guirms 更新时间:11/8/2023 访问量:40
在 include 子句中不应用 LINQ 查询
The LINQ query is not applied when inside a include clause
问:
我正在使用 .NET Core 7 和 Entity Framework 7.0.13,我有以下 LINQ 查询:
var test = _typedContext
.AsNoTracking()
.AsNoTracking()
.Include(m => m.MachineOperations!
.Where(m =>
m.InsertedAt.Date <= endDate.Date &&
m.EndTime <= endDate.TimeOfDay &&
m.InsertedAt.Date >= startDate.Date &&
m.StartTime >= startDate.TimeOfDay))
.ThenInclude(m => m.EggQuantities);
var sameCondition = test.First().MachineOperations
.Where(m =>
m.InsertedAt.Date <= endDate.Date &&
m.EndTime <= endDate.TimeOfDay &&
m.InsertedAt.Date >= startDate.Date &&
m.StartTime >= startDate.TimeOfDay);
Console.WriteLine(sameCondition); // Here it returns empty
我的问题是.未应用包含中的 Where 子句。例如,我传入了 startDate 变量的内容“2023-11-08 10:00:00”,查询从 9 月和 10 月开始引入 MachineOperations,忽略了我的条件。最奇怪的是,在查询之后,我再次过滤,应用完全相同的条件,并且条件正常工作。当它位于包含内时,该条件根本不起作用。为什么会这样?我该如何解决它?
编辑:我只是意识到,如果我添加一个.ToList(),一切正常。现在我的问题是:这会损害我的查询的性能吗?
答: 暂无答案
评论
10:00
m.InsertedAt.Date