Ano*_*ous 5 c# sql filter where objectquery
有人可以帮我回答如何用ObjectQuery bilder重写原始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);
Run Code Online (Sandbox Code Playgroud)
我会使用Where()方法,但它生成where子句用AND分隔,但我想使用OR代替.是否可以使用QueryBilder?我的意思是如何使用它来生成"OR分离"过滤器:
Where("it.LocaleName IN (@localeName)", new ObjectParameter("localeName", String.Join(",", localeName)))
Run Code Online (Sandbox Code Playgroud)
谢谢,阿尔乔姆
它再次发生,我自己回答我的问题.谢谢你.
这是答案:
ObjectQuery作为EntityCommand不支持"IN"CLAUSE YET ...这意味着没有机会使用WHERE IN过滤器将查询发送到DB,直到您使用已从DB中选择的DataSet.因此,只有LINQ方法可以执行此操作,并且只能使用选定的List <>
虽然,有一个替代方案不是那么明确但有效的决定 - 您可以在查询中使用多个OR条件,它们对我来说很好:
ObjectQuery<DbDataRecord> query = query.Where("it.RouteID=1 OR it.RouteID=2");
Run Code Online (Sandbox Code Playgroud)
希望这会帮助别人......享受:)
小智 5
您可以在ObjectQuery中使用IN子句.你只需要使用{而不是(.
例如"it.ID IN {4,5,6}"而不是"it.ID IN(4,5,6)"
这个答案的所有功劳都来自 使用Linq to Entities的'Contains()'解决方法?
归档时间: |
|
查看次数: |
16280 次 |
最近记录: |