2016-01-20 5 views
1

У меня есть ситуация, когда я хочу рассчитать общую транзакцию клиента. Я могу сделать это в запросе mysql, но я не знаю, как это сделать в linq sql.Как преобразовать счет в linq?

select c.name, count(r.custid) 
from receipt r left join in cust c on (c.custid=r.custid) 
group by r.custid 

Как его преобразовать в linq sql?

+0

Что вы пытаетесь сделать точно, я не понимаю. Вы спрашиваете о linq sql, но ваш примерный запрос является сырым sql? Вы хотите знать эквивалент linq этого запроса? –

+0

Я хочу показать как имя, так и счет ожидаемый результат. имя || Количество david || 3 solomon || 4 joseph || 1 – Jerrime25

+0

@AhmedGalal: Это не похоже на достаточно близкое дублирование для меня, учитывая членство в этом вопросе. Я не говорю, что дубликат * не был задан - но я не думаю, что это так. –

ответ

3

Я бы не начал с SQL ... Я бы начал думать о том, что вы рассчитываете, а это в основном количество записей квитанций в группе, которая соответствует клиенту. Похоже, что вы хотите что-то вроде:

var query = from customer in db.Customers 
      join receipt in db.Receipts 
       on customer.CustomerId equals receipt.CustomerId 
       into customerReceipts 
      select new { customer.Name, Count = customerReceipts.Count() }; 

Обратите внимание, что в отличие от многих «левого присоединиться к» примеры в LINQ, мы не используем customerReceipts.DefaultIfEmpty(), потому что мы только хотим, чтобы количество - которое должно быть 0, если нет квитанции для это клиент.

+0

вы можете помочь мне в этой последующей проблеме? http://stackoverflow.com/questions/35641821/how-to-convert-sql-count-order-by-to-linq-count-order-by – Jerrime25

Смежные вопросы