2009-11-12 9 views
0

J'ai une table SQL de base (pKey INT, TransDate smallDateTime, Amount Float) Je veux simplement imiter ce SQL dans LINQDébutant LINQ question syntaxe

SELECT SUM(Amount) AS result 
FROM dbo.Basic 
WHERE TransDate >= @startDate 
AND TransDate <= @EndDate 

J'ai créé le dbml LINQ pour cela et je peux obtenir des résultats de requête de base pour une plage de dates

Cependant, je ne peux pas trouver la bonne syntaxe pour obtenir la somme sur un dateRange, j'ai essayé plusieurs variantes sur les points suivants, mais soit ils ne compile, ou le résultat qu'ils donnent ne peuvent pas être convertis en un double

BasicDataContext dContext = new BasicDataContext(); 
var lnq = from c in dContext.Basic 
     where c.TransDate >= startdate && 
      c.TransDate <= enddate 
     select new { total = c.Sum(Amount) }; 

double result = (double)lnq.total; 
+0

Une autre astuce: lorsque vous utilisez LINQ, vous avez presque jamais de jeter quoi que ce soit. – Kobi

+0

Merci beaucoup Kobi –

Répondre

2

Cela devrait fonctionner:

double result = (from c in dContext.Basic 
        where c.TransDate >= startdate && 
         c.TransDate <= enddate 
        select c.Amount).Sum();