LINQ объединяет несколько столов в Lambda ex - PullRequest
0 голосов
/ 14 сентября 2018

Я надеюсь, что кто-то может помочь мне здесь или указать мне правильное направление:

У меня проблема с этим скриптом из моего SQL. Это то, что у меня есть из базы данных, и оно выходит с успехом.

Скрипт для счетчика воды с напоминанием на активный период:

Select * 
from WaterCounters
join WaterUsages on WaterUsages.WaterCounterId = WaterCounters.Id
join Periodes per on per.PeriodeId=WaterUsages.PeriodeId
where per.IsApproved = 1

Теперь я пытаюсь "перевести / преобразовать" в запрос LINQ:

var waterCounter = Context.MyWaterCounter.Join(xx).ToList...

Я уверен, что я делаю это правильно, но, пожалуйста, посоветуйте мне, как "присоединиться к более чем одному столу" - заранее спасибо.

С уважением,

Кволле

ОБНОВЛЕНИЕ: пока это мой сценарий:

var waterCounter = Context.MyWaterCounter.Join(
                        Context.MyWaterUsages
                   .Where(x => x.WaterCounterId ==x.WaterCounterId)
                   .ToList());

Вот, как я вижу, одна таблица.

Таблицы в базе данных выглядят так:

enter image description here

1 Ответ

0 голосов
/ 14 сентября 2018

Это будет выглядеть примерно так

var waterCounter = Context.MyWaterCounter.Join(
                        Context.MyWaterUsages,
                        (WC) => WC.WaterCounterId,
                        (WU) => WU.Id,
                        (WC, WU) => new { WaterCounter = WC, WaterUsage = WU}
                   )
                   .Join(
                        Context.Periodes.Where(p => p.IsApproved=1),
                        (WUC) => WUC.WaterUsage.PeriodeId,
                        (P) => P.PeriodeId,
                        (WUC, P) => new { WaterCounter = WUC.WaterCounter, WaterUsage = WUC.WaterUsage, Period = P}
                   )
                   .ToList());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...