Why are some object properties UnaryExpression and others MemberExpression?
I think I know what the problem is. Your expression returns type object
.
If you change this to Expression<Func<T, R>>
the return type should be correctly inferred, and UnaryExpression
(which I will assume is some boxing operation) should not occur.
Update:
The signature for Include
should be:
public void Include<T, R>(Expression<Func<T, R>> expression)