2011-09-26 15 views
6

में अज्ञात प्रकार को मजबूत प्रकार में कैसे परिवर्तित कर सकता हूं LINQ कोड एक अनाम प्रकार देता है मैं एक मजबूत प्रकार के "ग्राहक" कैसे लौटा सकता हूं? मैं एक अनाम प्रकार लौटा रहा हूं क्योंकि मैं केवल इकाई से कुछ फ़ील्ड चुनना चाहता हूं।ईएफ 4 मैं LINQ

var customer = from c in _entities.Customers 
          join con 
          in _entities.Contracts on c.CustomerID equals con.customerID 
          where con.contractNo == number 
          select new 
          { 
           Surname = c.Surname, 
           Forename= c.Forename, 
           Address = c.Address, 
           Suburb = c.Suburb, 
           State = c.State, 
           Postcode = c.PostCode, 
           PhoneNo = c.PhoneNo 
         }; 

धन्यवाद

+1

आप वास्तव में अपने कुछ उत्तर स्वीकार करने के लिए प्रयास करना चाहिए या लोगों wil मैं भविष्य में आपकी मदद करने के लिए अनिच्छुक रहूंगा। – eandersson

+0

@ फ़ूजी जानकारी के लिए धन्यवाद। –

उत्तर

6

या तो

var customer = from c in _entities.Customers 
         join con 
         in _entities.Contracts on c.CustomerID equals con.customerID 
         where con.contractNo == number 
         select c; 

कर ग्राहक उदाहरणों का चयन करने के साथ किया जाता है या

Customer customer = (from c in _entities.Customers 
         join con 
         in _entities.Contracts on c.CustomerID equals con.customerID 
         where con.contractNo == number 
         select new Customer{ 
          Surname = c.Surname, 
          Forename= c.Forename, 
          Address = c.Address, 
          Suburb = c.Suburb, 
          State = c.State, 
          Postcode = c.PostCode, 
          PhoneNo = c.PhoneNo 
         }).FirstOrDefault(); 

सिर्फ गुण आप कर रहे हैं के साथ ग्राहक के नए उदाहरण बना करने के लिए भरने में रुचि रखते हैं। (बशर्ते ग्राहक वर्ग एक parameterless निर्माता है)

+0

मैंने दूसरी LINQ क्वेरी का उपयोग किया लेकिन मैं ग्राहक को विभिन्न ग्राहक कैसे लगा सकता हूं? मैं केवल एक पंक्ति वापस करना चाहता हूँ। –

+0

@marks आवश्यकतानुसार '.SingleOrDefault()' या 'FirstOrDefault() 'का उपयोग करते हैं। –

+0

मुझे नए ग्राहक "चयन" पर एक त्रुटि मिल रही है। "टाइप सिस्टम .linq। IQueryable को पोर्टल में परिवर्तित नहीं कर सकता। मॉडल। ग्राहक। एक स्पष्ट रूपांतरण exisits (क्या आप एक कास्ट गायब हैं) क्योंकि मैं एक नया ग्राहक बना रहा हूं, मुझे एक कास्ट चाहिए? –

2

ऐसा लगता है कि आप देख रहे हैं की तरह सभी ग्राहकों को एक contractNo कि number से मेल खाता है के साथ किसी भी अनुबंध है कि के लिए - एक का उपयोग नहीं करते में शामिल होने के बजाय एफई नेविगेशन संपत्ति का उपयोग करें:

var customers = _entities.Customers 
         .Where(c => c.Contracts.Any(x => x.contractNo == number)); 

अगर वहाँ सिर्फ एक (या शायद कोई नहीं) है की इन ग्राहकों SingleOrDefault() का उपयोग सिर्फ एक Customer इकाई को पुनः प्राप्त करने:

Customer customer = _entities.Customers 
          .Where(c => c.Contracts.Any(x => x.contractNo == number)) 
          .SingleOrDefault(); 
+0

का उपयोग करना होगा, तो मैं ईएफ नेविगेशन प्रॉपर्टी की जांच करूँगा। \t मैं ग्राहक को विभिन्न ग्राहक कैसे डालूं? –

+1

@ user730381: यह ** ** एक ग्राहक है - दूसरे उदाहरण में आप 'var ग्राहक = ...' और 'ग्राहक ग्राहक = ... 'का उपयोग कर सकते हैं – BrokenGlass

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