इसके बजाय इस बात का
:
Select(a => Convert.ToInt32(a.RoleId))
यह करें:
Select(a => a.RoleId.Value)
कारण त्रुटि विवरण में है; जब आप IQueryable के माध्यम से इन प्रश्नों को कर रहे हैं, तो चयनकर्ता के भीतर उपयोग की जाने वाली विधियों को ऐसा कुछ होना चाहिए जिसे SQL क्वेरी या फ़ंक्शन में अनुवादित किया जा सके। इस मामले में Convert.ToInt32()
ऐसी कोई विधि नहीं है। int
फ़ील्ड null
के साथ, .NET .Value
संपत्ति का उपयोग करने की अनुमति है, हालांकि।
ध्यान दें कि यह RoldId
null
है, तो यह काम नहीं करेगा। आपको InvalidOperationException
मिल जाएगा। आप एक निर्धारित मूल्य पर लौटने के लिए बजाय अगर समर्थन फ़ील्ड रिक्त है चाहते हो सकता है:
Select(a => a.RoleId.HasValue ? a.RoleId.Value : int.MinValue)
यह मान वापस आ जाएगी अगर वहाँ एक है, और int.MinValue
अगर नहीं है।
स्रोत
2012-04-12 05:34:47
मुझे लगता है कि 'Convert' कार्यों संस्थाओं को LINQ साथ काम नहीं करेंगे, तो यह आपको एक' db.AccountRules कर सकता है कि संभव है। AsNumerable() 'और फिर बाकी – V4Vendetta