Когда я делаю linq для Sql с включением унаследованного класса, SQL генерирует оператор "где в" - PullRequest
0 голосов
/ 30 октября 2019

Если я сделаю это:

Код C #:

ModelClass1.Include(r => r.ModelClass2Parent)

с трехклассным классом ModelClass2Parent, я получу следующий код sql:

SELECT ....
FROM [ModelClass1] AS [r]
LEFT JOIN (
    SELECT ...
    FROM [ModelClass2Parent] AS [r0]
    WHERE [r0].[TypeId] IN (1, 3, 2)
) AS [t] ON [r].[Id] = [t].[ModelClass1Id]
ORDER BY [r].[Id], [t].[Id]
GO

Есть любойспособ избежать в пункте? Это излишне, а также вызывает подзапрос и плохую производительность

Я ожидаю что-то вроде

SELECT .... FROM [ModelClass1] AS [r] LEFT JOIN [ModelClass2Parent] .... и нес подзапросом

...