Доброго времени суток!
Помогите с запросом к БД. Торможу и не могу понять как это написать.
Есть таблица 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?
Здравствуйте, 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) }
Здравствуйте, Basker, Вы писали:
B>Как это записать в Linq2Db не соображу. Как оставить одну строку с максимальной версией для каждого ID?
В дополнение к ответу Jack128, можно и здесь подучится
https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b