Форум программистов, компьютерный форум, киберфорум
LINQ
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 03.12.2013
Сообщений: 4
1

Написать на LINQ запрос, который был бы идентичен обычному запросу T-sql в SQLServer

03.12.2013, 12:24. Показов 1052. Ответов 4
Метки нет (Все метки)

Добрый день, товарищи!
Подскажите пожалуйста! Необходимо написать на LINQ запрос, который был бы идентичен обычному запросу T-sql в SQLServer:
============================================================ =========================
T-SQL
1
2
3
4
Select   o.OrderNumber, o.UserName, tranDate, sum(p.Price*o.Quantity)
from Orders o join Users u on o.UserID=u.UserID 
join Products p on o.ProductID=p.ProductID
group by OrderNumber, o.UserName, tranDate
============================================================ =========================
То есть объединяются 3 таблицы, группируются по измерениям суммируются по количеству товара * на его цену.
На выходе мне нужно получить экземпляр класса OrderVewModel
============================================================ =========================

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
var viewModel = from order in dataManager.OrdersProcessor.Orders.ToList()
                            join user in dataManager.UsersRepository.UsersInfo.ToList() on order.UserID equals
                                user.UserID
                            join product in dataManager.Products.Products.ToList() on order.ProductID equals
                                product.ProductID
                            
                            select new OrderViewModel 
                        {
                            UserName = order.UserName,
                            OrderNumber = order.OrderNumber,
                            TransactionDate = DateTime.Parse(order.TranDate.ToShortDateString()),
                            TotalValue = order.Price*order.Quantity
                        };
Как группировать не знаю. Заранее спасибо!
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.12.2013, 12:24
Ответы с готовыми решениями:

Написать SQL запрос, который позволяет выбрать информацию из базы данных
Информацию о водителях авто и выполненную каждым из них количество заказов, которые выполнили...

Написать SQL запрос, который возвращает информацию о пяти ближайших днях рождения пользователей
Есть таблица пользователей CREATE TABLE `users` ( `user_id` int(11) NOT NULL AUTO_INCREMENT,...

Переписать SQL запрос в LINQ запрос
День добрый всем. Подскажите, пожалуйста, как можно преобразовать запрос: SELECT Price *...

SQL запрос в LINQ
Я не понимаю как перобразовать такой SQL-запрос для MS SQL SELECT * FROM sysobjects WHERE type =...

4
157 / 186 / 48
Регистрация: 25.11.2013
Сообщений: 978
03.12.2013, 12:54 2
Напиши сначала на TSQL, затем перенеси на LINQ, синтаксис похожий
0
0 / 0 / 0
Регистрация: 03.12.2013
Сообщений: 4
03.12.2013, 13:12  [ТС] 3
Цитата Сообщение от DataPlanner Посмотреть сообщение
Напиши сначала на TSQL, затем перенеси на LINQ, синтаксис похожий
В этом собственно у меня и проблема. SQL запрос рабочий, а как его перенести в LINQ не пойму из-за группировки
0
157 / 186 / 48
Регистрация: 25.11.2013
Сообщений: 978
03.12.2013, 13:16 4
group by в LINQ тоже есть, в чем трудности?
0
0 / 0 / 0
Регистрация: 03.12.2013
Сообщений: 4
03.12.2013, 17:35  [ТС] 5
там синтаксис совсем другой, я не понял как зафигачить group by в Linq

Добавлено через 3 часа 14 минут
Разобрался. Если кому пригодится:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
            var viewModel = from order in dataManager.OrdersProcessor.Orders.ToList()
                            join user in dataManager.UsersRepository.UsersInfo.ToList() on  order.UserID equals
                                user.UserID
                            join product in dataManager.Products.Products.ToList() on order.ProductID equals
                                product.ProductID
                            group order by new { order.UserName, order.Phone, order.OrderNumber, order.Email, order.UserAddress, order.TransactionDate } into js
                     
                            select new OrderViewModel 
                        {
                            UserName = js.Key.UserName,
                            Phone = js.Key.Phone,
                            Email = js.Key.Email,
                            OrderNumber = js.Key.OrderNumber,
                            UserAddress = js.Key.UserAddress,
                            TransactionDate = js.Key.TransactionDate, 
                            TotalValue = js.Sum(p=>p.Quantity*p.Price)
                        };
                        
            return View(viewModel);
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.12.2013, 17:35

Перевести SQL запрос в LINQ
Доброе время суток! Вот до этого времени не сталкивался с Join в LINQ. Помогите, пожалуйста,...

Переписать запрос SQL на LINQ
всем доброго времени суток! помогите написать запрос на LINQ вот он на MS SQL: SELECT...

Запрос через LINQ to SQL
Привет. Есть следующие таблицы БД (проектировал её не я): good_book // Данные о товарах id...

Перевести запрос с SQL в LINQ
Доброго времени суток, требуется помощь в переводе запроса с SQL в LINQ, кто сможет помогите, буду...

Перевести SQL-запрос в LINQ
Ребят помогите понять как будет такой запрос выглядить на linq: SELECT COUNT(*) FROM members WHERE...

Запрос к базе через linq to sql
Есть такой метод, его надо переделать с помощью linq to sql я начал но запутался решил спросить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.