2013-03-22 17 views
6

प्रकार का निरंतर मान बनाने में असमर्थ मेरे पास दो linq प्रश्न हैं। मैं एक और प्रश्न में एक प्रश्न के परिणाम का उपयोग करना चाहता हूं।'अज्ञात प्रकार'

var t2s = (from temp3 in _ent.Products      
      where temp3.Row_Num == 2 
      select new { temp3.ProductID }); 

तो मैं एक और प्रश्न में यह वर का उपयोग करें:

var _query = (from P1 in _ent.brands 
       join temp2 in on 
        new { Produ_ID = (Int32?)P1.Prod_ID } 
        equals new { Produ_ID = (Int32?)temp2.ProductID } 
      ); 

जब मैं अपने आप में पहला क्वेरी चलाने यह मुझे सही परिणाम देता है। अगर मैं एक join बिना एक दूसरे को चलाने यह मुझे सही परिणाम देता है, लेकिन एक join के साथ मुझे निम्न त्रुटि देता है:

error: Unable to create a constant value of type 'Anonymous type'. Only primitive types ('such as Int32, String, and Guid') are supported in this context

+4

दूसरी क्वेरी में 't2s' कहां है? –

उत्तर

3

आप क्या आपको यकीन है शामिल होने की ज़रूरत है? इस बारे में क्या:

var t2s = _ent.Products.Where(t => t.Row_Num == 1).Select(t =>t.ProductID); 

var _query = _ent.brands.Where(b => t2s.Contains(b.Prod_ID)); 

आप चीजों को थोड़ा कि क्या ProductID और/या Prod_ID व्यर्थ कर रहे हैं पर निर्भर करता है को बदलने की जरूरत हो सकती है।

2

कोशिश के रूप में निम्नानुसार आपके प्रश्नों को बदलने:

var t2s = from temp3 in _ent.Products      
      where 
      temp3.Row_Num == 2 
      select temp3.ProductID; 

var _query = from P1 in _ent.brands 
      join temp2 in t2s on P1.Prod_ID equals temp2 
      select ... 
संबंधित मुद्दे