I wanna extract the Func<> from the following Expression :
Expression<Func<IQueryable<Entity>, IOrderedQueryable<Entity>>> order = q => q.OrderByDescending(c=>c.FullName);
Func<IQueryable<Entity>, IOrderedQueryable<Entity>> orderFunc = ?
How can I do it?
Edit :
And how can we convert Func<IQueryable<Entity>, IOrderedQueryable<Entity>> to Expression<Func<IQueryable<Entity>, IOrderedQueryable<Entity>>> ?
You can use the
Compilemethod to turn anyExpresstion<TDelegate>into aTDelegate.There is no way to convert a delegate into an
Expression<TDelegate>. The detailed information about what makes up the expression was lost when it was compiled into a delegate.You could, in theory create an expression who's body does nothing but invoke the given delegate, by doing something like this:
but such an expression isn't really useful. There really isn't any meaningful information inside of that expression. So while it's technically possible, it's never really practical.