我需要将参数传递给需要Expression<Func<T, bool>>
的方法。
如何传递一个总是返回true
的表达式?
使用obj => true
不起作用,因为框架在运行时抱怨它无法从True常量确定memeber类型。
答案 0 :(得分:11)
如果你有这样的功能
void TakeExpression<T>(Expression<Func<T, bool>> expr)
您应该这样调用它,指定T类型:
TakeExpression<int>(_ => true)
它应该有用。
答案 1 :(得分:1)
您需要定义要传递的参数类型:
(object o) => true
或者
(int a) => true
答案 2 :(得分:0)
我们可以达到以下结果。
将 context 作为DbContext实例,将 Entity 作为您的实体类名称。
context.Entity.Where(t=> t.EntityID == t.EntityID);
这样做,where子句将始终返回true,并且将显示所有数据。
答案 3 :(得分:-1)
这里有两个问题:
1)如果你传递一个谓词,这样你总是想要返回true,那么它就不是一个谓词了。你可能可以省略你想要做的任何电话。
2)如果你想返回true,你可以简单地使用更详细的lambda语法来获得你想要的东西:
sample.AsQueryable().Where((x) => { return true; });
更详细的语法允许您在仍然是表达式的同时指定更接近匿名函数。