Acesse o valor de uma expressão de membro
Se eu tiver um produto.
var p = new Product { Price = 30 };
e eu tenho a seguinte consulta linq.
var q = repo.Products().Where(x=>x.Price == p.Price).ToList()
Em um provedor IQueryable, recebo uma MemberExpression de volta para o p.Price que contém uma expressão constante, no entanto, não consigo recuperar o valor "30".
Atualizar Eu tentei isso, mas parece não funcionar.
var memberExpression = (MemberExpression)GetRootConstantExpression(m);
var fi = (PropertyInfo)memberExpression.Member;
var val = fi.GetValue(((ConstantExpression)memberExpression.Expression).Value, null);
Felicidades.