Что равным ниже SQL в LINQLinq (MIN MAX &&)
select MIN(finishTimestamp) AS FromDate, MAX(finishTimeStamp) AS ToDate From Transactions
??
from t in Transactions
select new {
FromDate = ?,
ToDate = ?
}
Благодаря
Что равным ниже SQL в LINQLinq (MIN MAX &&)
select MIN(finishTimestamp) AS FromDate, MAX(finishTimeStamp) AS ToDate From Transactions
??
from t in Transactions
select new {
FromDate = ?,
ToDate = ?
}
Благодаря
Вы можете просто сделать
var transactionDates = from t in Transactions
select t.FinishTimeStamp;
var dates = new {
FromDate = transactionDates.Min(),
ToDate = transactionDates.Max()
};
Вы также можете использовать агрегатные функции, если вы хотите (пример в VB)
Dim max = Aggregate tMax In Transactions Select tMax Into Max()
Чтобы использовать несколько агрегатов в Linq to 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, но сгенерированный SQL чист, и, делая это, вы делаете только один запрос к базы данных.
+1 интересный! – womp
, чтобы сообщать вам об этом: "group by 1" не работает с NHibernate 3.2 – devio