मैं वर्तमान में एकएक अनावश्यक मुक्केबाजी निकाला जा रहा है एसी # अभिव्यक्ति से परिवर्तित
Expression<Func<T,bool>>
के लिए एक
Expression<Func<T,object>>
कन्वर्ट करने के लिए कोशिश कर रहा हूँ वर्तमान में घड़ी मुझे पता चलता है कि मेरी अभिव्यक्ति रखती
Expression<Func<T,object>> myExpression = model=>Convert(model.IsAnAirplane)
मैं इसे
पर सरल बनाना चाहता हूंExpression<Func<T,bool>> myExpression = model=>model.IsAnAirplane
वर्तमान में मैं केवल एक परिवर्तित जोड़ने में सफल, जिसका परिणाम:
Expression<Func<T,bool>> myExpression = model=>Convert(Convert(model.IsAnAirplane))
लेकिन चूंकि अंतर्निहित प्रकार एक bool है, मैं सही है, पूरी तरह धर्मान्तरित खरोंच करने में सक्षम होना चाहिए? मैं अभिव्यक्ति आगंतुकों से परिचित हूं, लेकिन फिर भी यह पता नहीं लगा सकता कि कन्वर्ट को कैसे हटाया जाए।
संपादित करें: इस सवाल का Generic unboxing of Expression<Func<T, object>> to Expression<Func<T, TResult>> को यह स्वीकार कर लिया जवाब (कि हो सकता है एक संभावित डुप्लिकेट) मेरे लिए काम नहीं करता है ... के रूप में अभिव्यक्ति एफई द्वारा अनुवादित हो जाता है, आप देख सकते हैं यह (कन्वर्ट()) में कनवर्ट करता है बजाय केवल पहले कनवर्ट को हटाने के लिए ..., इसका परिणाम "System.Object 'टाइप करने के लिए" System.Boolean' टाइप करने में असमर्थ है। LINQ से इकाइयां केवल ईडीएम आदिम या गणना प्रकारों कास्टिंग करने का समर्थन करती हैं। "
यह वही करता है जो मैं चाहता था, और एक आकर्षण की तरह काम करता है, धन्यवाद! –
धन्यवाद, यह वास्तव में मेरे बट को बचाया –