मैं गतिशील रूप से nHibernate के लिए linq प्रश्नों का निर्माण कर रहा हूं।एक LambdaExpression टाइप करने के लिए अभिव्यक्ति <Func<T, T>>
निर्भरताओं के कारण, मैं बाद में टाइप की गई अभिव्यक्ति को कास्ट/पुनर्प्राप्त करना चाहता था, लेकिन मैं अब तक असफल रहा हूं।
यह काम कर रहा है नहीं (डाली कहीं ऐसा माना जाता है):
var funcType = typeof (Func<,>).MakeGenericType(entityType, typeof (bool));
var typedExpression = (Func<T, bool>)Expression.Lambda(funcType, itemPredicate, parameter); //Fails
यह काम कर रहा है:
var typedExpression = Expression.Lambda<Func<T, bool>>(itemPredicate, parameter);
यह संभव हो 'समझाया' करने के लिए एक LambdaExpression से अभिव्यक्ति टाइप किया है ?
हो सकता है आप typedExpression.Compile() – jure
मैं अपने ORM नक्शाकार के साथ एक IQueryable के रूप में अभिव्यक्ति का उपयोग करने के लिए तो यह संकलित नहीं किया जा सकता की जरूरत के लिए देख रहे हैं। – Larantz