2013-11-21 23 views
-2

大家好我想實現類似Linq to Sql的SQL Select語句。任何幫助將不勝感激。在Linq to Sql中求和和減法

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

這是LINQ到SQL或實體框架?你的問題提到了兩個。 – Mansfield

回答

3

假設實體框架:

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

由於曼斯菲爾德已經顯示的表達式語法,我會和經典的查詢一展身手:

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

我認爲你必須參考'Sum()''LBalance'因爲你已經放在裏面一個匿名對象。 – Flater

+0

正確!然後就是沒有匿名類型。我認爲LBalance應該是可空的十進制 – Marco

+0

根據Sum()的文檔,是的。 'Func ' – Flater