【发布时间】:2012-02-07 20:46:19
【问题描述】:
我有一个包含字段的数据表:
TransactionID (int),
TransactionDate (DateTime)
AdjustedValue (decimal)
我想在 LINQ 中实现以下 SQL 的等价物:
SELECT TransactionID, TransactionDate, Sum(AdjustedValue), COUNT(*) AS ItemCount
FROM DATATABLE
WHERE TransactionDate >= BeginDate
and TransacationDate < EndDate
GROUP BY TransactionID
ORDER BY TransactionID DESCENDING
我尝试了以下方法:
var query = (from lui in DTbatches.AsEnumerable()
where lui.TransactionDate >= BeginDate &&
lui.TransactionDate < EndDate
group lui.TransactionID by lui.TransactionID into g
order by g.Key descending
select new TransactionIDListItem
{
TransactionID = g.Key,
ItemCount = g.Count()
}).ToList();
这可行,但仅返回 TransactionID 和指定事务中的记录数。我应该如何修改我的 LINQ 以包括 TransactionDate 和 sum(AdjustedValue) 字段?
我的TransactionIDListItem 类定义为:
public int BatchID {get; set;}
public DateTime TransactionDate {get; set;}
public int ItemCount {get; set;}
public decimal TotalValue {get; set;}
【问题讨论】: