ठीक है मुझे यहां एक स्वच्छता जांच की आवश्यकता है ...एक संकलित क्वेरी कब करता है जो IQueryable निष्पादन देता है?
मैंने एक क्वेरी संकलित की है जो निष्पादित होने पर एक IQueryable देता है।
निम्नलिखित उदाहरण में क्वेरी को वास्तव में डेटाबेस के विरुद्ध किस पंक्ति में निष्पादित करना चाहिए?
101 IQueryable<T> results = MyCompiledQuery(MyDataContext);
102 List<T> final = (from t in result
103 where t.ID > 5
104 select t).ToList<T>();
यहाँ कैसे मैं अतिरिक्त चर्चा के लिए संकलित क्वेरी
public static Func<MyDataContext, IQueryable<Widget>> MyCompiledQuery=
CompiledQuery.Compile<MyDataContext, IQueryable<Widget>>(
(MyDataContext db) =>
from w in db.Widgets
where ((w.Type == WidgetType.Atype || //Widget.Atype is a Linq to Sql object, that I've defined statically
w.Type == WidgetType.Btype || //See above comment
w.Type == WidgetType.Ctype) && //See above comment
w.Location == WidgetLocation.Domestic) //Samething applies here
select euc);
परिभाषित करने के लिए कृपया संदर्भ लें है: "। लाइन 104 पर, जब ToList रूपांतरण कर रही" LINQ to SQL compiled queries and when they execute
लाइन 104 पर कोई बयान नहीं है। वहां ब्रेकपॉइंट सेट करने का प्रयास करें ... – Guffa
मुझे लगता है कि यह क्वेरी वास्तव में लाइन 101 पर निष्पादित होती है (यहां तक कि ToList को कॉल करने से पहले)। – lahsrah
सं। लाइन 101 क्वेरी बनाता है। वास्तविक डेटा प्राप्त होने पर क्वेरी निष्पादित की जाती है। – alex