2013-11-21 3 views
-2

Привет всем Я хочу добиться чего-то вроде инструкции SQL Select с Linq to Sql. Любая помощь будет оценена.Суммирование и вычитание в Linq to Sql

SELECT SUM(Debit-Credit) AS LBalance FROM dbo.LeaveLedger 
WHERE StaffId =1 AND LYEAR='2000' 
+1

Является ли это Linq для SQL или Entity Framework? В вашем вопросе упоминаются оба. – Mansfield

ответ

3

Предполагая Entity Framework:

Context.Table.Where(x => x.StaffId == 1 and x.LYEAR == "2000") 
    .Sum(y => (y.Debit - y.Credit)); 
+0

Не должно быть .Sum() в конце –

+0

@ AD.Net Правильно, что вы: – Mansfield

2

Что-то вроде этого?

var sum = 
    db.LeaveLedger 
     .Where(ll => ll.StaffId == 1 and ll.LYEAR == "2000") 
     .Sum(ll => (ll.Debit - ll.Credit)) 
2

С Mansfield уже показал синтаксис выражений, я буду идти с классическим запросом:

var LBalance = (from p in dbo.LeaveLedger 
       where p.StaffId == 1 && p.LYEAR == "2000" 
       select (p.Debit - p.Credit).Sum(); 
+0

Я думаю, вам нужно будет ссылаться на 'LBalance' в' Sum() ', поскольку вы ввели внутри анонимный объект. – Flater

+0

правыйo! Тогда просто без анонимного типа. Я думаю, что LBalance должен иметь тип с нулевым значением десятичного числа – Marco

+0

Согласно документации Sum(), yep. 'Func ' – Flater