C# 如何使用linq在select查询中获取值?

C# 如何使用linq在select查询中获取值?,c#,asp.net,linq,C#,Asp.net,Linq,我使用LINQ内部连接组合了两个表客户机和付款。在此之后,我用这两个表中的值填写一个新的模型总计。我只需要一个用户名。有什么想法吗?我会非常感激的 var results = from client in _db.Clients join trade in _db.Payments on client.Id equals trade.ClientId where (client.Id == t

我使用LINQ内部连接组合了两个表客户机和付款。在此之后,我用这两个表中的值填写一个新的模型总计。我只需要一个
用户名
。有什么想法吗?我会非常感激的

var results = from client in _db.Clients
                          join trade in _db.Payments on client.Id equals trade.ClientId
                          where (client.Id == trade.ClientId &&
                          DateTime.Compare(trade.TradeDate, (DateTime)fromDate) >= 0 &&
                          DateTime.Compare(trade.TradeDate, (DateTime) toDate) <= 0)
                          select new { client.Username, trade};
            var cs = results
                .GroupBy(tr => tr.trade.ClientId)
                .Select(item => new Totals
                {
                    Username = //here I need to set a value
                    CommBcf = item.Sum(client => client.trade.CommBcf),
                    EcnAll = item.Sum(client => client.trade.EcnAll),
                    EcnRbt = item.Sum(client => client.trade.EcnRbt),
                    OpenGross = item.Sum(client => client.trade.OpenGross),
                    CloseGross = item.Sum(client => client.trade.CloseGross)
}).ToList();
var results=来自_db.Clients中的客户端
加入交易_db.Payments on client.Id等于trade.ClientId
其中(client.Id==trade.ClientId&&
DateTime.Compare(trade.TradeDate,(DateTime)fromDate)>=0&&
比较(trade.TradeDate,(DateTime)toDate)tr.trade.ClientId)
.选择(项目=>新总计
{
Username=//这里我需要设置一个值
CommBcf=item.Sum(client=>client.trade.CommBcf),
EcnAll=item.Sum(client=>client.trade.EcnAll),
EcnRbt=item.Sum(client=>client.trade.EcnRbt),
OpenGross=item.Sum(client=>client.trade.OpenGross),
CloseGross=item.Sum(客户端=>client.trade.CloseGross)
}).ToList();

按键和名称分组。通过使用
new{id,name}
创建新的匿名对象,可以按多个列进行分组

 var results = from client in _db.Clients
                              join trade in _db.Payments on client.Id equals trade.ClientId
                              where (client.Id == trade.ClientId &&
                              DateTime.Compare(trade.TradeDate, (DateTime)fromDate) >= 0 &&
                              DateTime.Compare(trade.TradeDate, (DateTime) toDate) <= 0)
                              select new { client.Username, trade};
                var cs = results
                    .GroupBy(tr => new {id=tr.trade.ClientId,name=tr.trade.Name})
                    .Select(item => new Totals
                    {
                        Username = item.Key.name
                        CommBcf = item.Sum(client => client.trade.CommBcf),
                        EcnAll = item.Sum(client => client.trade.EcnAll),
                        EcnRbt = item.Sum(client => client.trade.EcnRbt),
                        OpenGross = item.Sum(client => client.trade.OpenGross),
                        CloseGross = item.Sum(client => client.trade.CloseGross)
    }).ToList();
var results=来自_db.Clients中的客户端
加入交易_db.Payments on client.Id等于trade.ClientId
其中(client.Id==trade.ClientId&&
DateTime.Compare(trade.TradeDate,(DateTime)fromDate)>=0&&
比较(trade.TradeDate,(DateTime)toDate)new{id=tr.trade.ClientId,name=tr.trade.name})
.选择(项目=>新总计
{
用户名=item.Key.name
CommBcf=item.Sum(client=>client.trade.CommBcf),
EcnAll=item.Sum(client=>client.trade.EcnAll),
EcnRbt=item.Sum(client=>client.trade.EcnRbt),
OpenGross=item.Sum(client=>client.trade.OpenGross),
CloseGross=item.Sum(客户端=>client.trade.CloseGross)
}).ToList();

这对我帮助很大。我的感谢!请接受答案,以向其他人表明它是有帮助的,并且得到了回答。当然,但将您的回答标记为答案的时间限制尚未结束;)哦,是的,我记得,这些规则是如何发明的:)很高兴它能帮助你:)