में सभी बच्चे वस्तुओं का चयन यह वास्तव में आसान होना चाहिए, लेकिन मैं सिर्फ यह पता अपने आप काम नहीं कर सकता, इंटरफ़ेस काफी सहज नहीं है ... :(Linq
चलो कहते हैं कि मैं एक State
तालिका चलाते हैं और मैं कई States
से सभी Counties
का चयन करना चाहते एसक्यूएल में होगा:।
select c.*
from State s join County c on c.StateCode = s.StateCode
where s.TimeZone = -5 -- or some other criteria
ऊपर के उदाहरण काफी तुच्छ एक स्थिर संदर्भ में Linq में बदलने के लिए है:
var q = MyDataContext.GetTable<County>().Where(c => c.State.TimeZone = -5);
लेकिन जहां यह जटिल हो रही शुरू होता है अगर मैं इस तरह के निम्नलिखित के रूप में एक और अधिक संदर्भ संवेदनशील क्वेरी चाहते हैं,:
public static List<County> GetCountiesForStates(List<State> states) {
// gotta do something to return all the counties for all these states
}
अब मुझे लगता है कि विधि के अंदर कुछ इस तरह कर सकता है:
var q = MyDataContext.GetTable<County>().Where(c => states.Contains(c.State));
लेकिन IMO यह वास्तव में सुरुचिपूर्ण है, क्योंकि (ए) मुझे राज्य वस्तुओं के अंतर्निहित डेटा संदर्भ का उपयोग करने के बजाय स्थिर MyDataContext
प्राप्त करना होगा और (बी) आप पीछे की ओर काम कर रहे हैं, और यदि आप आगे की क्वेरी को जटिल बनाना शुरू करते हैं तो यह भी उलझन में पड़ता है।
वहाँ के साथ क्वेरी शुरू करने का एक तरीका है:
var q = states... // or "from s in states..."
सहज, मैं तुम्हें ऐसा कर सकते हैं विश्वास करने के लिए चाहते हैं, लेकिन मैं अभी तक जिस तरह से नहीं मिला है ...
+1 लैम्ब्डा विस्तार सहित। –
बस जो मैं चाहता था - धन्यवाद! –
बस एक छोटा टाइपो - "देश होना चाहिए। जहां (सी => सी। प्रॉपर्टी) आदि ... –