【发布时间】:2012-09-12 14:39:32
【问题描述】:
当我在实体框架中执行这些操作符(> 和>=) lambda 表达式时。两者都得到相同的结果。
db.Companies.where(Company => (Compare(Convert(Company.Name), "y") > 0))db.Companies.where(Company => (Compare(Convert(Company.Name), "y") >= 0))
这是 Lambda 表达式比较运算符的问题吗? 我改成
db.Companies.where(Company => (Compare(Convert(Company.Name), "y") > 1))- 没有结果。它不正确db.Companies.where(Company => (Compare(Convert(Company.Name), "y") >= 1))- 64 个结果
源代码
case operatorType.Greater: return Expression.GreaterThan(Expression.Call(typeof(string),
"Compare", null, new[] { argLeft, argRight }),
Expression.Constant(1, typeof(int)));
case operatorType.GreaterEqual: return Expression.GreaterThanOrEqual( Expression.Call(typeof(string), "Compare", null, new[] { argLeft, argRight }),
Expression.Constant(1, typeof(int)));
【问题讨论】:
-
Convert和Compare是什么? -
好吧,没有看到他们,我们无法判断他们应该评估什么。
-
-1 个不完整的问题!如何转换和比较
do.. -
转换我用于使用 FieldType 进行类型转换。