假设我有一个实体:
MyEntity
{
...
Nullable<Int64> MyProperty
...
}
我希望能够做类似这样的事情:
Ctx.MyEntity.Where(x=>x.MyProperty/16 == 10)
使用Linq.Expression
因此我创建了一个参数:
var param = Expression.parameter(typeOf(MyEntity));
那么,接下来是属性:
var prop = Expression.PropertyOrField(param,"MyProperty");
如果我想与 10 进行比较,我会这样做:
var cmp = Expression.equal(prop,Expression.constant(10,prop.Type));
但首先我需要将prop除以16。
于是我尝试:
var div = Expression.Divide(prop,Expression.constant(16, prop.type);
这会抛出一个不匹配类型的异常。
有人可以帮忙吗?
谢谢,