LINQ C#
От: CyberRussia  
Дата: 23.09.20 20:36
Оценка:
Запутался с Linq.
Стал писать что-то вида:
                        query = from q1 in connectDBReport.VwAkkumulator
                                join q2 in connectDBReport.Akknetincs
                                on q1.Ticker equals q2.Ticker
                                where q1.Dimenstion == q2.Dimenstion && q1.Year == q2.Year && q1.Quarterly == q2.Quarterly && q2.Netinccomdev > whereNetIncome
                                select q1;

где VwAkkumulator — представление в БД. Akknetincs — таблица. По сути данных соотношение один ко многим.
При этом в результирующем наборе данных мне нужна выборка только из VwAkkumulator без повторяющихся данных (которые могли быть вызваны связью с Akknetincs и отношением один ко многими).

Как правильно написать Linq ?
Re: LINQ C#
От: Danchik Украина  
Дата: 23.09.20 20:57
Оценка: +3
Здравствуйте, CyberRussia, Вы писали:

CR>Запутался с Linq.

CR>Стал писать что-то вида:
CR>
CR>                        query = from q1 in connectDBReport.VwAkkumulator
CR>                                join q2 in connectDBReport.Akknetincs
CR>                                on q1.Ticker equals q2.Ticker
CR>                                where q1.Dimenstion == q2.Dimenstion && q1.Year == q2.Year && q1.Quarterly == q2.Quarterly && q2.Netinccomdev > whereNetIncome
CR>                                select q1;
CR>

CR>где VwAkkumulator — представление в БД. Akknetincs — таблица. По сути данных соотношение один ко многим.
CR>При этом в результирующем наборе данных мне нужна выборка только из VwAkkumulator без повторяющихся данных (которые могли быть вызваны связью с Akknetincs и отношением один ко многими).

CR>Как правильно написать Linq ?


Могу дать еще и совет: думайте сначала как должен выглядеть SQL да так и пишите LINQ запрос

query = from q1 in connectDBReport.VwAkkumulator
   where connectDBReport.Akknetincs.Any(q2 => q1.Dimenstion == q2.Dimenstion && q1.Year == q2.Year 
      && q1.Quarterly == q2.Quarterly && q2.Netinccomdev > whereNetIncome
      && q1.Ticker == q2.Ticker)
   select q1;
Отредактировано 24.09.2020 4:42 Danchik . Предыдущая версия . Еще …
Отредактировано 23.09.2020 21:44 Danchik . Предыдущая версия .
Re[2]: LINQ C#
От: IT Россия linq2db.com
Дата: 24.09.20 01:30
Оценка: +1
Здравствуйте, Danchik, Вы писали:

CR>>
CR>>                        query = from q1 in connectDBReport.VwAkkumulator
CR>>                                join q2 in connectDBReport.Akknetincs
CR>>                                on q1.Ticker equals q2.Ticker
CR>>                                where q1.Dimenstion == q2.Dimenstion && q1.Year == q2.Year && q1.Quarterly == q2.Quarterly && q2.Netinccomdev > whereNetIncome
CR>>                                select q1;
CR>>


D>
D>query = from q1 in connectDBReport.VwAkkumulator
D>   where connectDBReport.Akknetincs.Any(q2 => q1.Dimenstion == q2.Dimenstion && q1.Year == q2.Year && q1.Quarterly == q2.Quarterly && q2.Netinccomdev > whereNetIncome)
D>   select q1;
D>


Забыл про q1.Ticker equals q2.Ticker.
Если нам не помогут, то мы тоже никого не пощадим.
Re: LINQ C#
От: Sharov Россия  
Дата: 28.09.20 14:28
Оценка: +1
Здравствуйте, CyberRussia, Вы писали:

CR>где VwAkkumulator — представление в БД. Akknetincs — таблица. По сути данных соотношение один ко многим.

CR>При этом в результирующем наборе данных мне нужна выборка только из VwAkkumulator без повторяющихся данных (которые могли быть вызваны связью с Akknetincs и отношением один ко многими).
CR>Как правильно написать Linq ?

Поставьте LinqPad -- там можно и sql и linq писать. По идее автоматически он не сконрвертирует, но все под боком.
Кодом людям нужно помогать!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.