[Linq2Db] Помогите написать запрос к БД
От: Basker Россия  
Дата: 12.12.18 20:53
Оценка:
Доброго времени суток!
Помогите с запросом к БД. Торможу и не могу понять как это написать.
Есть таблица TProcesses с данными:
----------------------------------------------
| ID | Name  | Denotation | NoTech | Version |
----------------------------------------------
|  1 | Test1 | T1         | T1TP   |    1    |
|  1 | Test1 | T1         | T1TP   |    2    |
|  2 | Test2 | T2         | T1TP   |    1    |
|  2 | Test2 | T2         | T2TP   |    2    |
|  2 | Test2 | T2         | T2TP   |    3    |
----------------------------------------------


Надо вытащить следующие данные в List<TProcesses>:
 1 | Test1 | T1         | T1TP   |    2
 2 | Test2 | T2         | T2TP   |    3

SQL-запрос простейший:
SELECT   ID,
         Name,
         Denotation,
         NoTech,
         MAX(Version) AS Version
FROM     TProcesses
GROUP BY ID,
         Name,
         Denotation,
         NoTech
ORDER BY Denotation,
         NoTech

Как это записать в Linq2Db не соображу. Как оставить одну строку с максимальной версией для каждого ID?
Все на свете лишь атомы, амиго
Re: [Linq2Db] Помогите написать запрос к БД
От: Jack128  
Дата: 13.12.18 06:47
Оценка: +1
Здравствуйте, Basker, Вы писали:

B>SQL-запрос простейший:

B>
B>SELECT   ID,
B>         Name,
B>         Denotation,
B>         NoTech,
B>         MAX(Version) AS Version
B>FROM     TProcesses
B>GROUP BY ID,
B>         Name,
B>         Denotation,
B>         NoTech
B>ORDER BY Denotation,
B>         NoTech
B>

B>Как это записать в Linq2Db не соображу. Как оставить одну строку с максимальной версией для каждого ID?

from process in db.Processes
group process by new { process.ID, process.Name, .... } into gr
orderby gr.Key.Denotation, gr.Key.NoTech
select new { gr.Key.ID, gr.Key.Name, .... , Version = gr.Max(x => x.Version) }
Re: [Linq2Db] Помогите написать запрос к БД
От: Danchik Украина  
Дата: 21.12.18 17:39
Оценка:
Здравствуйте, Basker, Вы писали:

B>Как это записать в Linq2Db не соображу. Как оставить одну строку с максимальной версией для каждого ID?


В дополнение к ответу Jack128, можно и здесь подучится https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.