我使用带分页的EF(skip& top)从AzureSQL获取记录。 代码:
var query = _context.Kits
.Include(k => k.KitStatuses)
.Where(t => t.X == y)
.OrderBy(t => t.Z)
.Skip(skip)
.Take(pageSize).Select(t => new
{
Id = t.Id,
Barcode = t.Barcode,
...
}).ToListAsync();
问题是SELECT TOP(pageSize)应该只有一个查询,但在profiler中我可以看到每个记录1个查询(在包含的KitStatuses表上):
exec sp_executesql N'SELECT TOP(1) [k3].[Updated]
FROM [KitStatuses] AS [k3]
WHERE ([k3].[Status] = 1) AND (@_outer_Id1 = [k3].[Kit_Id])',N'@_outer_Id1 uniqueidentifier',@_outer_Id1='868780F2-C121-C209-65F1-08D4442D5A8A'
任何想法为什么?
如果我不包含子集合,它可以正常工作(1个查询)。
谢谢你&亲切的问候, H3k0