Где на проецируемых элементах не включает где в запросе - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть следующий случай:

foos.Select(f => new Bar { 
    A = f.A, 
    B = f.B, 
    C = f.C == null ? "Yes" : "No",
    D = 10,
    E = f.SubObject.Value
})
.Where(b => b.C == "Yes")

теперь кажется, что это генерирует что-то вроде:

SELECT 
    [f0].[A],
    [f0].[B],
    CASE WHEN [f0].[C] IS NULL N'Yes' ELSE N'No' END AS [C],
    10 AS [D],
    [f.SubObject0].[Value] AS [E]
FROM [foos] AS [f0]
LEFT JOIN [SubObjects] AS [f.SubObject0]
   ON [f0].[ObjectID] = [f.SubObject0].[ObjectId]

Но это не включает пункт where. Есть ли способ заставить его там? теперь он будет захватывать все сущности в таблице foos перед тем, как выполнить where, которое ofc очень медленное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...