Как использовать Linq SQL для выполнения ВНУТРЕННИХ СОЕДИНЕНИЙ, где значения равны или один равен нулю - PullRequest
0 голосов
/ 27 апреля 2020

Как выполнить следующий запрос с помощью Linq

SELECT u.* FROM Users u   
INNER JOIN Localities l ON (u.State = l.State or l.State is NULL)
                       AND (u.City = l.City or l.City is NULL)  

Ответы [ 2 ]

0 голосов
/ 28 апреля 2020

Вы можете попробовать следующий запрос. Также, чтобы сделать его более оптимизированным, вы можете удалить свои нулевые условия, так как внутреннее объединение будет работать, только если обе записи содержат значения

            var users = from u in Users
                        join l in Localities on new { A = u.State, B = u.City} 
                        equals new { A = l.State, B = l.City }
                        select u

l.State is NULL и l.city is null будут по умолчанию исключены из внутренних объединений, так что вы не нужно присоединяться к нулю

0 голосов
/ 28 апреля 2020

Попробуйте следующее, вам может потребоваться немного изменить его, поскольку он не проверен.

var result = from Users u
            join Localities l
            on new { u.state, u.City } equals new { l.state, l.City }    
            where (l.state == NULL || l.City == NULL)   
            select u;  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...