LINQ

2012-06-25 12 views
5

का उपयोग करके विभिन्न प्रकार के दो IQueryable चर शामिल होकर कॉलम नाम और प्रकार समान हैं, हालांकि यह दो अलग-अलग इकाइयों से आ रहा है। यहाँ एक सरल उदाहरण है:LINQ

--Query View 
var v_res = from s in db.V_CMUCUSTOMER 
      select s; 

--Values from table less values from view 
var res = from s in db.CMUCUSTOMERs 
      where !(from v in v_res 
      select v.ID).Contains(s.ID) 
     select s; 

--join table and view values into one variable 
var res_v_res = (from c in res 
      select c).Union(from v in v_res 
      select v); 

मैं निम्न त्रुटि तथापि:

उदाहरण तर्क: 'System.Linq.IQueryable' से System.Linq.ParallelQuery

को
+2

यदि आप 'var' का उपयोग करना बंद कर देते हैं तो मैं शर्त लगाता हूं, उत्तर स्पष्ट होगा। कंपाइलर को v_res और res के प्रकार का चयन करके, आप इसके विकल्पों के साथ रहना चाहते हैं। –

+1

कृपया विस्तृत करें। – stats101

+0

कंपाइलर उन चरों में से एक के लिए एक अप्रत्याशित प्रकार का चयन कर सकता है, फिर यह उस विकल्प के आधार पर यूनियन के विभिन्न कार्यान्वयन के बीच चयन कर सकता है (System.Linq.Enumerable.Union, System.Linq.Queryable.Union दो संभावनाओं का नाम देने के लिए) । इसके बजाय, यदि आप प्रकार निर्दिष्ट करते हैं, तो संकलक आपको बताएगा कि जब आप असंभव पूछते हैं। –

उत्तर

0

आप एक नई अज्ञात प्रकार निर्दिष्ट और दोनों के लिए ToList() का उपयोग करते हैं तो आप में सक्षम संघ उन्हें इस प्रकार होना चाहिए:

var v_res = (from s in db.V_CMUCUSTOMER 
      select new { custName = s.customer_name custAddress = s.address}).ToList(); 

--Values from table less values from view 
var res = (from s in db.CMUCUSTOMERs 
      where !(from v in v_res 
      select v.ID).Contains(s.ID) 
      select new { custName = s.customer_name custAddress = s.address }).ToList(); 

--join table and view values into one variable 
var res_v_res = v_res.Union(res); 

अगर वहाँ कॉलम के दर्जनों रहे हैं, लेकिन अभी भी काम करना चाहिए इस महती हो सकता है ।

0

जब मैं चलाने परिवर्तित नहीं कर सकते LINQPad में एक समान क्वेरी, मुझे एक त्रुटि संदेश मिलता है कि sContains(s.ID) में इस संदर्भ में परिभाषित नहीं किया गया है।

यदि मैं &&where के साथ प्रतिस्थापित करता हूं तो सभी प्रश्न सफलतापूर्वक निष्पादित किए जाते हैं।

संबंधित मुद्दे

 संबंधित मुद्दे