У меня есть команда ef:
var project = await _context.Set<Project>().Include(p => p.Controllers).FirstOrDefaultAsync(p => p.Id == pid);
и в процессе выполнения генерирует два select в виде sql:
SELECT TOP(1) [p].[Id], [p].[AppKey], [p].[CreateDate], [p].[Name], [p].[Title]
FROM [Project] AS [p]
WHERE [p].[Id] = @__pid_0
ORDER BY [p].[Id]
SELECT [p.Controllers].[Id], [p.Controllers].[CommandTimeout], [p.Controllers].[ContentType], [p.Controllers].[CreateDate], [p.Controllers].[IsActive], [p.Controllers].[IsJsonSerialize], [p.Controllers].[IsTested], [p.Controllers].[Method], [p.Controllers].[Name], [p.Controllers].[ProjectId], [p.Controllers].[Query], [p.Controllers].[Title]
FROM [Controller] AS [p.Controllers]
INNER JOIN (
SELECT TOP(1) [p0].[Id]
FROM [Project] AS [p0]
WHERE [p0].[Id] = @__pid_0
ORDER BY [p0].[Id]
) AS [t] ON [p.Controllers].[ProjectId] = [t].[Id]
ORDER BY [t].[Id]
Вопрос в том, почему генерируются две независимые команды sql, а первую можно пропустить? есть ли причина этого? для меня это похоже на ошибку!