2009-07-10 17 views
13

क्या LINQLinq (न्यूनतम && मैक्स)

select MIN(finishTimestamp) AS FromDate, MAX(finishTimeStamp) AS ToDate From Transactions 

में एसक्यूएल नीचे के बराबर है ??

from t in Transactions 
select new { 
      FromDate = ?, 
      ToDate = ? 
     } 

धन्यवाद

उत्तर

18

तुम सिर्फ कर सकते हैं

var transactionDates = from t in Transactions 
         select t.FinishTimeStamp; 

var dates = new { 
        FromDate = transactionDates.Min(), 
        ToDate = transactionDates.Max() 
       }; 
0

तुम भी कुल कार्यों का उपयोग कर सकते हैं (VB में उदाहरण)

Dim max = Aggregate tMax In Transactions Select tMax Into Max() 
36

में कई समुच्चय उपयोग करना चाहते हैं SQL से लिंक, एक तालिका पर, समूह के बिना, केवल मैं कई प्रश्नों कर से बचने के लिए मिल गया है जिस तरह से, एक "नकली समूह" बनाने के लिए है:

var q = from tr in dataContext.Transactions 
     group tr by 1 into g // Notice here, grouping by a constant value 
     select new 
     { 
      FromDate = g.Min(t => t.InvoiceDate), 
      ToDate = g.Max(t => t.InvoiceDate) 
     }; 

किंडा hacky, लेकिन उत्पन्न एसक्यूएल साफ है, और ऐसा करके, आप के लिए केवल एक क्वेरी बनाने डेटाबेस।

+0

+1 दिलचस्प! – womp

+0

बस आपको यह बताने के लिए: "1 से समूह" एनएचबेर्नेट 3.2 के साथ काम नहीं करता है – devio

संबंधित मुद्दे