c# - 如何将 ObjectQuery 与由 OR 子句分隔的 Where 过滤器一起使用

标签 c# sql filter where objectquery

有人可以帮我回答如何用 ObjectQuery 图片重写原始 SQL 过滤器 WHERE (...) OR (...) 吗?

String queryRaw = "SELECT ls.LocaleName, ls.IsActive, ls.LocaleDescription " +
                  "FROM RoutesEntities.Locales AS ls ";

                  //" WHERE ls.LocaleName = 'en' OR ls.LocaleName = 'de' "

this._queryData = new ObjectQuery<DbDataRecord>(queryRaw, routesModel);

我会使用 Where() 方法,但它会生成由 AND 分隔的 where 子句,尽管我想改用 OR。 QueryBilder 有可能吗? 我的意思是如何使用它来生成“或分离”过滤器:

Where("it.LocaleName IN (@localeName)", new ObjectParameter("localeName", String.Join(",", localeName)))

谢谢,阿泰姆

最佳答案

它又发生了,我自己回答我的问题。谢谢。

这里是答案:

ObjectQuery 作为 EntityCommand 还不支持“IN”条款 ... 这意味着在您使用已从数据库中选择的数据集之前,没有机会使用 WHERE IN 过滤器将查询发送到数据库。所以只有 LINQ 方法可以做到这一点,并且只能使用选定的列表<>

不过,还有一个不太明确但有效的替代方案 - 您可以在查询中使用多个 OR 条件,它们对我来说效果很好:

ObjectQuery<DbDataRecord> query = query.Where("it.RouteID=1 OR it.RouteID=2");

希望这会帮助某人......享受 :)

关于c# - 如何将 ObjectQuery 与由 OR 子句分隔的 Where 过滤器一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3791060/

相关文章:

C# XNA 如何更改整个 Texture2D 的 alpha?

c# - 有没有办法使三元运算短路?

c# - 'enumType' 和 'TEnum' 之间的区别

python - Django 的逻辑或多对多查询返回重复结果

mysql - oracle sql 列定义不明确错误

javascript - 搜索/过滤嵌套数组 Javascript/Lodash

c# - 如何使用 EF 在 MVC3 中包含另一个表?将数据检索到列表中

sql - 如何在 DB2 9.7 的模式中搜索触发器?

Canvas 的 Javascript 像素操作,模糊过滤器不起作用

ios - 不确定如何使用 CICrop 裁剪图像