Wenn ich ein Produkt habe.
var p = new Product { Price = 30 };
und ich habe die folgende linq Abfrage.
var q = repo.Products().Where(x=>x.Price == p.Price).ToList()
In einem IQueryable-Anbieter erhalte ich einen MemberExpression für den p.Price zurück, der einen konstanten Ausdruck enthält, aber ich kann den Wert "30" anscheinend nicht zurückbekommen.
Update Ich habe es versucht, aber es scheint nicht zu funktionieren.
var memberExpression = (MemberExpression)GetRootConstantExpression(m);
var fi = (PropertyInfo)memberExpression.Member;
var val = fi.GetValue(((ConstantExpression)memberExpression.Expression).Value, null);
Prost.