मेरे पास दो टेबल हैं: वर्कइटम टेबल, और वर्कइटम नोट तालिका। मैं वर्कइटम और सभी वर्कइटम नोट्स कैसे लौटा सकता हूं जो एक निश्चित मानदंड को पूरा करते हैं?सशर्त के साथ ईएफ क्वेरी
मुझे लगता है कि यह सरल होना चाहिए, लगभग एक सशर्त "शामिल" की तरह, सही?
मेरे पास दो टेबल हैं: वर्कइटम टेबल, और वर्कइटम नोट तालिका। मैं वर्कइटम और सभी वर्कइटम नोट्स कैसे लौटा सकता हूं जो एक निश्चित मानदंड को पूरा करते हैं?सशर्त के साथ ईएफ क्वेरी
मुझे लगता है कि यह सरल होना चाहिए, लगभग एक सशर्त "शामिल" की तरह, सही?
मैं इस पर a tip लिखने की योजना बना रहा हूं लेकिन आपका प्रश्न मुझे पंच पर मार देता है।
var intermediary = (from item in ctx.WorkItems
from note in item.Notes
where note.SomeProp == SomeValue
select new {item, note}).AsEnumerable();
यह प्रत्येक WorkItemNote
कि मैच के लिए एक गुमनाम तत्व पैदा करता है, और भी इसी WorkItem
रखती है:
एक WorkItem
मान लिया जाये कि कई WorkItemNotes
आप ऐसा कर सकते हैं।
ईएफ पहचान संकल्प बीमा करता है कि उसी WorkItem
(संदर्भ द्वारा) कई बार लौटाया जाता है यदि उसके पास एकाधिक WorkItemNotes
मानदंडों से मेल खाते हैं।
मुझे लगता है कि अगले तुम सिर्फ वापस बस WorkItems
को पाने के लिए, इस तरह हैं: अगर तुम अब क्या यह तब
var workItems = intermediary.Select(x => x.item).Distinct().ToList();
:
foreach(var workItem in workItems)
{
Console.WriteLine(workItem.Notes.Count)
}
आपको लगता है कि WorkItemNotes
से मेल खाने वाले देखेंगे मूल फ़िल्टर प्रत्येक workItem
के नोट्स संग्रह में जोड़ा गया है।
यह रिलेशनशिप फ़िक्सअप नामक किसी चीज़ की वजह से है।
आईई। यह आपको वह देता है जो आप सशर्त शामिल करना चाहते हैं।
आशा इस
सच में मदद करता है? x.Item के पास उपयुक्त WorkItemNotes होगा? वह तो कमाल है! मुझे खुशी है कि आपने इसे पोस्ट किया क्योंकि मैं वर्तमान में प्रत्येक वर्कइटम के लिए डीबी से पूछताछ करता हूं। धन्यवाद! –
एक प्रश्न: मध्यस्थ को आईनेमरेबल क्यों होना चाहिए? क्या यह IQueryable हो सकता है? –
येप यह काम करता है। आप इसे अन्य युक्तियों के लिए भी इस्तेमाल कर सकते हैं, जैसे सॉर्टिंग, मेरी टिप्स श्रृंखला के टिप 1 देखें! –