Qual è uguale di sotto SQL in LINQLinq (MIN && MAX)
select MIN(finishTimestamp) AS FromDate, MAX(finishTimeStamp) AS ToDate From Transactions
??
from t in Transactions
select new {
FromDate = ?,
ToDate = ?
}
Grazie
Qual è uguale di sotto SQL in LINQLinq (MIN && MAX)
select MIN(finishTimestamp) AS FromDate, MAX(finishTimeStamp) AS ToDate From Transactions
??
from t in Transactions
select new {
FromDate = ?,
ToDate = ?
}
Grazie
Si può solo fare
var transactionDates = from t in Transactions
select t.FinishTimeStamp;
var dates = new {
FromDate = transactionDates.Min(),
ToDate = transactionDates.Max()
};
È inoltre possibile utilizzare le funzioni di aggregazione, se si desidera (esempio in VB)
Dim max = Aggregate tMax In Transactions Select tMax Into Max()
di utilizzare più aggregati in Da Linq a SQL, su un tavolo, senza il raggruppamento, l'unico modo che ho trovato per evitare di fare più query, è quello di fare una "gruppo falso":
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)
};
Kinda hacky, ma l'SQL generato è pulito, e così facendo, si fanno solo una query per il database.
+1 interessante! – womp
solo per farti sapere: "group by 1" non funziona con NHibernate 3.2 – devio