1
をLINQ to SQLのを使用してグループから値を選択するために、誰もが、私がやっていること方法
select
COUNT(ot.UserId) as orderCount, SUM(ot.TotalAmount) as TotalAmount,
MAX(u.UserName) as UserName, MAX(c.name) as ClientName
from OrderTemplate ot
join User u
on u.userid = ot.UserId
join Client c
on u.ClientID = c.clientid
group by ot.UserId
私はC#でLINQと同等のSQLを記述するためにされて助けることができる、
from ot in dbContext.OrderTemplates
join user in dbContext.Users on ot.UserId equals user.UserID
join client in dbContext.Clients on user.ClientID equals client.ClientID
group ot by ot.UserId into g
select new
{
//UserName = need to pick this from user table
//ClientName = need to pick this from client table
OrderCount = g.Count(),
TotalAmount = g.Sum(x=> x.TotalAmount)
};
私は」することができますtは、SQLに応じて値を選択します。複数のキーによってそのよう
'UserName'の値は何ですか? 'Max(u.Username)'は実際にはどういう意味ですか?それらは同じユーザー名ですか?いくつかの値は 'null'で、次に' max'を使ってその値を取得しますか? –
はい、ユーザー名はグループごとに同じになるので、いずれかを選択するだけです。 –
また、あなたのSQLでは、 'UserId'によって補足されていますが、linqでは' OrderId' –