我正在编写一个流畅的SQL界面(是的,就像LINQ to Entities),我正在尝试获取MemberExpression的值,但我无法获取我在网络上找到的样本。
例如,假设我有以下代码:
var test = true;
var search = Search.Create()
.To(to)
.From(from)
.Where( m => m.BooleanField == test );
在我的Where()方法中,我正在提取Expression的左侧和右侧。我有一个正确的MemberExpression,我正在尝试编译它,使其评估为true,如下所示:
var objectMember = Expression.Convert(right, typeof(object));
var getterLambda = Expression.Lambda<Func<object>>(objectMember);
var getter = getterLambda.Compile();
我期待getter成为'true',但它是'NULL'。我做错了什么?