我想为这样的语句生成一个LambdaExpression:
Adress (p => p.Person.Name == "Mike")
其中Person
是一个具有名称属性的类。
我无法用Expression.Property
实现此目的。
有什么想法吗?
答案 0 :(得分:2)
假设p的类型是PersonContainer:
// p => p.Person.Name == "Mike"
ParameterExpression par = Expression.Parameter(typeof(PersonContainer), "p");
BinaryExpression beEq = Expression.Equal(
Expression.Property(
Expression.Property(par, "Person"),
"Name"),
Expression.Constant("Mike"));
Expression<Func<PersonContainer, bool>> expr = Expression.Lambda<Func<PersonContainer, bool>>(beEq, par);