想象我有一個實體:你如何劃分的LINQ表達式的屬性
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));
但首先我需要通過16
所以道具劃分我嘗試:
var div = Expression.Divide(prop,Expression.constant(16, prop.type);
而這拋出了一個不匹配類型的異常。
有人可以幫忙嗎?
THX,
猜測:您需要訪問該Nullable的.Value。編譯器可能會在「這樣的事情」代碼中爲你做這件事。另一個想法是,在分割表達式創建中提供Int64類型(不是Nullable!) – 2012-03-21 16:01:35