2016-04-15 13 views
0
select sum(DATEDIFF(day,LeaveBreakup.StartDate,LeaveBreakup.EndDate)+1) 

, was ich will, ist die Aussage zu konvertieren select-Anweisung LinqWie diese SQL-Teil konvertieren Linq

+0

Forschung die Grundlagen der LINQ. https://msdn.microsoft.com/en-us/library/bb386928%28v=vs.110%29.aspx – CathalMF

+0

keine Notwendigkeit für 'LINQ'. – tchelidze

Antwort

2
class LeaveBreakup 
{ 
    public DateTime StartDate { get; set; } 
    public DateTime EndDate { get; set; } 
} 

List<LeaveBreakup> Dates = new List<LeaveBreakup>(); 
Dates.Add(new LeaveBreakup(){StartDate = DateTime.Now.AddDays(-3), EndDate = DateTime.Now }); 
Dates.Add(new LeaveBreakup(){StartDate = DateTime.Now.AddDays(-2), EndDate = DateTime.Now }); 

LINQ BIT

var Result = (from D in Dates 
       select (D.EndDate - D.StartDate).TotalDays + 1) 
      .Sum(); 

Wenn Sie das diff wissen wollen, ohne Gedanken machen zu müssen, die Berechnung in Math.Abs ​​

var Result = (from D in Dates 
       select Math.Abs((D.StartDate - D.EndDate).TotalDays) + 1) 
      .Sum(); 
012 einen negativen Wert aufweist, etwa dann wickeln

In diesem Beispiel Ihr Ergebnis ist 7