का उपयोग कैसे करें मैं एफई वर्ग एक डेटाबेस (सरलीकृत) से ली गईLINQ अलग() के साथ कई क्षेत्रों
class Product
{
public string ProductId;
public string ProductName;
public string CategoryId;
public string CategoryName;
}
ProductId
प्राथमिक कुंजी तालिका के है निम्नलिखित है।
डीबी डिजाइनर द्वारा किए गए एक खराब डिजाइन निर्णय के लिए (मैं इसे संशोधित नहीं कर सकता), मेरे पास इस तालिका में CategoryId
और CategoryName
है।
मैं (अलग) के रूप में CategoryId
मूल्य और CategoryName
रूप पाठ के साथ एक DropDownList की जरूरत है।
product.Select(m => new {m.CategoryId, m.CategoryName}).Distinct();
जो तार्किक रूप से यह CategoryId
और CategoryName
गुण के रूप में के साथ एक अनाम वस्तु बनाना चाहिए: इसलिए मैं निम्नलिखित कोड लागू होता है। Distinct()
गारंटी देता है कि कोई डुप्लिकेट जोड़ी नहीं है (CategoryId
, CategoryName
)।
लेकिन असल में यह काम नहीं करता है। जहां तक मुझे लगता है कि Distinct()
केवल तभी काम करता है जब संग्रह में केवल एक फ़ील्ड है अन्यथा यह केवल उन्हें अनदेखा करता है ... क्या यह सही है? क्या कोई कामकाज है? धन्यवाद!
अद्यतन
क्षमा product
है:
product.GroupBy(d => new {d.CategoryId, d.CategoryName})
.Select(m => new {m.Key.CategoryId, m.Key.CategoryName})
'संग्रह में सिर्फ एक क्षेत्र है' अतर्कसंगत है। आपका क्या अर्थ है? – leppie
@leppie मेरा अनुमान है, उसका मतलब है कि एक मूल्य पर प्रक्षेपण करते समय, एक अज्ञात प्रकार नहीं (जिसमें एक से अधिक फ़ील्ड होते हैं)। – sehe
"डीबी डिजाइनर द्वारा किए गए खराब डिजाइन निर्णय के लिए (मैं इसे संशोधित नहीं कर सकता)"। आप शायद डेटाबेस को नहीं बदल सकते हैं, लेकिन इसका मतलब यह नहीं है कि आप इसे अपने ईएफ मॉडल में ठीक नहीं कर सकते हैं। यह ईएफ की धड़कन है। – Steven