Это мой запрос в SQL:
Select distinct * from tr.Table1
Left Outer join tr.Table2 on tr.Table1.ID = tr.Table2.ID
Left Outer join tr.Table3 on tr.Table2.AId= tr.Table3.ID
where tr.Table1.Deleted =1 and tr.Table1.Ready=1 and tr.Table1.Show=0
Запрос работает в SQL и дает ожидаемые результаты. Дело в том, что я хочу эквивалент этого с использованием LINQ. Я пробовал некоторые варианты запросов LINQ, например:
var query = from p in _ctx.Table1
join s in _ctx.Table2 on p.Id equals s.Id into bag1
from to in bag1.DefaultIfEmpty()
join tx in _ctx.Table3 on to.AId equals tx.Id into bag2
from ts in bag2.DefaultIfEmpty()
select new
{
ContactNo = to.Table1.ContactNo
};
Но он всегда не возвращает все значения поля. Некоторые возвращаются как NULL
. Также пытался сослаться на какую-то другую ссылку, но все они сосредоточены на соединении с родительской таблицей, тогда как мне нужно присоединиться к одной из соединенных таблиц с другой. Так вот, я борюсь с этим.
Это результат, который я получаю на данный момент. Некоторые значения являются нулевыми. Поле имеет значения, но из-за некоторых проблем с объединением они возвращаются как NULL
.
Руководство здесь приветствуется. Спасибо.