[英]How to convert groupby query to linq and compute other thing while executing?
I have this sql query and I want to convert it to linq. 我有此sql查询,我想将其转换为linq。
SELECT [Scheme_Code], [FundFamily], [Scheme_Name], MAX([Date]) as LastDate
FROM [MFD].[dbo].[MFDatas]
GROUP BY [Scheme_Code], [Scheme_Name], [FundFamily]
ORDER BY [Scheme_Code]
I want to check last date and if it's latest then I have to mark it as 'live'? 我要检查最后一个日期,如果是最新日期,那么我必须将其标记为“实时”吗?
Since you want to copy results to DataTable
, this query does what specified in your Sql
query and copies results to DataTable
. 由于要将结果复制到
DataTable
,因此此查询执行Sql
查询中指定的操作,然后将结果复制到DataTable
。
DataTable dt = new DataTable();
dt.Columns.Add("Scheme_Code", typeof(string));
dt.Columns.Add("Scheme_Name", typeof(string));
dt.Columns.Add("FundFamily", typeof(string));
dt.Columns.Add("LastDate", typeof(DateTime));
var table = MFDatas.GroupBy(g=> new { Scheme_Code, Scheme_Name, FundFamily})
.Select(s=>
{
var row = dt.NewRow();
row["Scheme_Code"] = s.Key.Scheme_Code,
row["Scheme_Name"] = s.Key.Scheme_Name,
row["FundFamily"] = s.Key.FundFamily,
row["LastDate"] = s.Max(m=>m.Date)
})
.OrderBy(o=>o.Field<string>("Scheme_Code"))
.Distinct()
.CopyToDataTable();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.