C# 在Linq select中返回非聚合和聚合

C# 在Linq select中返回非聚合和聚合,c#,asp.net,linq,core,C#,Asp.net,Linq,Core,尝试将基本SQL查询转换为Linq 骨料返回良好,但非骨料返回良好 系列ID、数量和交易数量都是完美的 代码和Isin不会导致错误,但它们返回的是类型而不是数据 我试图转换的查询: SELECT trans_series.id, trans_series.number, trans_series.isin, SUM( trans_trades.amount ), COUNT( trans.series_id ) FROM trans_trades

尝试将基本SQL查询转换为Linq

骨料返回良好,但非骨料返回良好

系列ID、数量和交易数量都是完美的

代码和Isin不会导致错误,但它们返回的是类型而不是数据

我试图转换的查询:

SELECT
  trans_series.id, 
    trans_series.number,
    trans_series.isin,
    SUM( trans_trades.amount ),
    COUNT( trans.series_id ) 
FROM
    trans_trades
INNER JOIN trans_series ON trans_series.id = trans_trades.series_id 
WHERE
    trans_trades.series_id  IN (
    17,
    18)
    AND trans_trades.first_party_id IS NULL
    AND trans_trades.status <> 'closed'
    AND trans_trades.status <> 'cancelled'
    GROUP BY trans_trades.series_id
我期望从number和isin列中得到实际不同的varchar值,但我在Razor页面的cs Onget中得到了这种类型的数据: 您需要的是:

Code =  g.First().tts.Number,
Isin = g.First()ts.Isin,
原因是在g.Selecti=>i.tts.Number中,您选择了一个值列表。 也许列表中只有一个值,但C仍然可以看到一个列表。
数组的ToString方法继承自对象类。因此它会打印类型名称。

通过将Isin和代码更改为以下内容,解决了此问题:

   Code = g.Select(i => i.ts.Number).Distinct().First(),
   Isin = g.Select(i => i.ts.Isin).Distinct().First(),
Code =  g.First().tts.Number,
Isin = g.First()ts.Isin,
   Code = g.Select(i => i.ts.Number).Distinct().First(),
   Isin = g.Select(i => i.ts.Isin).Distinct().First(),