[ad_1]
Bonjour les experts, j’ai une série de codes au format SQL Query, dans ce code j’ai joint 3 tables ensemble.
voici mon code :
select distinct(t.UserNO),t.UserName,s.TotalDays from User_Tbl as t join( select ChartNo from Chart_Rest_Tbl) as f ON t.UserNO = f.ChartNo join(select ChartNO, sum(Days) as TotalDays from Chart_Rest_Tbl group by ChartNo) AS s ON f.ChartNO = s.ChartNo
Maintenant, je veux écrire le code ci-dessus au format C#, comme ce code (je veux dire comment écrire le code ci-dessus au format c#, le code ci-dessous n’est qu’un exemple et je n’ai rien à voir avec le code ci-dessous) :
var st = (from s in db.Worker_Tbl join o in db.User_Tbl on s.WorkerNO equals o.UserNO where o.UserNO == txtsearch1 select new { s.WorderId, o.UserName, s.WorkerNO, s.GPEntireDate, s.GPExpiredDate, s.GPCount }).ToList();
Ce que j’ai essayé :
je ne sais pas comment écrire
SUM(Days)
au format C# ou comment écrire
distinct
merci pour votre temps <3
Solution 1
Voici le format LINQ en C# issu de votre requête SQL.
var query = from t in dbContext.User_Tbl join f in dbContext.Chart_Rest_Tbl.Select(x => x.ChartNo).Distinct() on t.UserNO equals f join s in dbContext.Chart_Rest_Tbl.GroupBy(x => x.ChartNo) .Select(g => new { ChartNO = g.Key, TotalDays = g.Sum(x => x.Days) }) on f equals s.ChartNO select new { UserNO = t.UserNO, UserName = t.UserName, TotalDays = s.TotalDays }; var result = query.Distinct().ToList();
Pour modifier ou référencer davantage, vous pouvez essayer les outils ci-dessous pour convertir votre requête SQL au format LINQ en C# :
LINQPad – Le terrain de jeu du programmeur .NET[^]
Page d’accueil – Linqer[^]
Solution 2
string sql = @" select distinct(t.UserNO),t.UserName,s.TotalDays from User_Tbl as t join( select ChartNo from Chart_Rest_Tbl) as f ON t.UserNO = f.ChartNo join(select ChartNO, sum(Days) as TotalDays from Chart_Rest_Tbl group by ChartNo) AS s ON f.ChartNO = s.ChartNo " ;
[ad_2]
コメント