मेरे पास TeamName
और CurrentStatus
फ़ील्ड वाली एक तालिका है। मैं रिकॉर्ड की गिनती हर टीम के लिए और प्रत्येक की स्थिति के लिए पाने के लिए एक LINQ क्वेरी बनाने हूँ:linq परिणामों में count = 0 शामिल करें
var teamStatusCounts = models.GroupBy(x => new { x.CurrentStatus, x.TeamName })
.Select(g => new { g.Key, Count = g.Count() });
इस क्वेरी के परिणामों जहां गिनती 0. मैं पंक्तियों प्राप्त करने की आवश्यकता है के अलावा सभी मायने रखता है देता है, जहां एक विशिष्ट टीम और एक विशिष्ट स्थिति के लिए कोई रिकॉर्ड नहीं है (जहां गिनती = 0)।
ठीक है, आप हवा से बाहर पंक्तियों नहीं बना सकते। शायद आपके पास सूचीबद्ध सभी टीमों के साथ एक अलग टेबल है। यदि ऐसा है, तो आपको दोनों तालिकाओं के बीच बाएं जुड़ने की आवश्यकता होगी। संपादित करें: और आपकी आवश्यकता के आधार पर, यह भी हो सकता है कि आपको उस तालिका में शामिल होने की आवश्यकता हो जिसमें सभी संभावित स्थितियां हों। – sstan
आपने शायद अपनी स्थिति तालिका और अपनी टीमों में शामिल होने के भीतर मॉडल बनाया है? तो आप परिणाम तालिका में सभी स्थिति डेटा खो देंगे। आप या तो इसे बाएं जुड़ने के लिए बदल सकते हैं, या अंत में –
पर खाली पंक्तियां जोड़ सकते हैं, जैसे 'var teamStatusCounts = allPossibleStatusAndTeamCombinations.Select (x => new {key = x, count = models.Count (y => y.CurrentStatus == x.CurrentStatus && y.TeamName == x.TeamName),}); '। –