là gì bình đẳng dưới sql trong LINQLINQ (MIN && MAX)
select MIN(finishTimestamp) AS FromDate, MAX(finishTimeStamp) AS ToDate From Transactions
??
from t in Transactions
select new {
FromDate = ?,
ToDate = ?
}
Cảm ơn
là gì bình đẳng dưới sql trong LINQLINQ (MIN && MAX)
select MIN(finishTimestamp) AS FromDate, MAX(finishTimeStamp) AS ToDate From Transactions
??
from t in Transactions
select new {
FromDate = ?,
ToDate = ?
}
Cảm ơn
Bạn chỉ có thể làm
var transactionDates = from t in Transactions
select t.FinishTimeStamp;
var dates = new {
FromDate = transactionDates.Min(),
ToDate = transactionDates.Max()
};
Bạn cũng có thể sử dụng chức năng tổng hợp nếu bạn muốn (Ví dụ trong VB)
Dim max = Aggregate tMax In Transactions Select tMax Into Max()
Để sử dụng nhiều uẩn trong LINQ to SQL, trên một bảng, mà không cần nhóm, chỉ Con đường tôi đã tìm thấy để tránh làm nhiều thắc mắc, là để thực hiện một "giả nhóm":
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, nhưng SQL được tạo ra là sạch, và bằng cách làm như vậy, bạn chỉ cần lập một truy vấn để kho dữ liệu.
+1 thú vị! – womp
chỉ để cho bạn biết: "nhóm theo 1" không hoạt động với NHibernate 3.2 – devio