C# में SQL क्वेरी फॉर्मेट कैसे लिखें


नमस्कार विशेषज्ञों, मेरे पास SQL ​​क्वेरी प्रारूप में कोड की एक श्रृंखला है, इस कोड में मैंने 3 तालिकाओं को एक साथ जोड़ा है।
यहाँ मेरा कोड है:

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

अब मैं उपरोक्त कोड को C# फॉर्मेट में लिखना चाहता हूं, इस कोड की तरह (मेरा मतलब है कि उपरोक्त कोड को C# फॉर्मेट में कैसे लिखें, नीचे दिया गया कोड सिर्फ एक उदाहरण है और नीचे दिए गए कोड से मेरा कोई लेना-देना नहीं है):

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();

मैंने क्या प्रयास किया है:

मुझे नहीं पता कि कैसे लिखना है

SUM(Days)

C# प्रारूप में या कैसे लिखें

distinct

आपके समय के लिए धन्यवाद <3

समाधान 1

यहां आपकी SQL क्वेरी से C# में LINQ प्रारूप है।

सी#
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();

संशोधित करने या आगे के संदर्भ के लिए, आप अपनी SQL क्वेरी को C# में LINQ प्रारूप में बदलने के लिए नीचे दिए गए टूल आज़मा सकते हैं:
LINQPad – .NET प्रोग्रामर का खेल का मैदान[^]
होम पेज – लिंकर[^]

समाधान 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
" ;

コメント

タイトルとURLをコピーしました