我对LINQ在PreprocessQuery中的工作方式感到困惑。我一直在使用针对自定义搜索屏幕的较大查询来解决问题。查询的其余部分似乎有效,除了我最终孤立的一小部分:
query = query.Where(i => i.IntValue == 100);
即使数据库显然具有匹配的值,也不会返回任何结果。
但是,以下方法确实有效:
query = query.Where(i => i.StringValue == "value");
没有涉及任何计算字段,我之前看到过这些字段。我错过了什么?
答案 0 :(得分:0)
正如我在回复您的question in the LightSwitch Forum时所述,我在 PreProcessQuery 方法中一直使用此类比较,因此如果检查了以下方案,则此错误不应该是'发生了。
该财产是:
类型 int (不是字节,短,长, string etc)
nullable
有一件事没有在你的论坛帖子中得到建议(实际上,我只是检查了帖子,并且这个语法 实际建议了,但我会留在这里为其他人,如果他们没有意识到有两种语法),就是试试“替代语法”。
query = from q in query
where q.IntValue == 100
select q;
语法不应该有任何区别,但话说再说一遍,错误也不应该发生。