不确定为什么此查询不返回任何结果(请注意CUSTOMERs
来自Oracle数据库):
string zip = "12345"
string state = "MA"
var result = from x in CUSTOMERs
where x.STATE.Equals(state) || x.ZIP.Equals(zip)
select x;
但是这个呢?
var result = from x in CUSTOMERs
where x.STATE.Equals("MA") || x.ZIP.Equals("12345")
select x;
答案 0 :(得分:1)
以下是我的理解,您在Oracle data connector
中使用LinqPad
,现在可以查询客户表,因为您运行的是IQueryable<T> Linq Query
,与{Linq to Objects
不同1}},在远程数据源上执行,并以Expression<Func<T,bool>
形式获取表达式树。在提供变量而不是实际的硬编码值时,它无法绑定值。绑定值的问题纯粹是由于它期望的方式并在内部解析表达式树。
要验证我的观点,请检查Fluent语法中CUSTOMERs.Where
的签名,它将采用表达式树而不是Linq2Objects所需的Func<T,bool>