【发布时间】:2014-04-21 15:05:44
【问题描述】:
我正在尝试使用 DynamicLINQ 库创建一个动态过滤系统。当您执行以下操作时,我的一切都会顺利进行:查找名字是 Bob 的人:
Context.Users.Where("FirstName == \"Bob\"");
但是当我想做的时候遇到了问题:查找名字是“Bob”的人(其中 Bob 存储在数据源中的双引号中)。
我尝试了一些不同的方法,包括转义转义的双引号和其他一些变体:
Context.Users.Where("FirstName == \"\\\"Bob\\\"\"");
// or as a literal for readability
Context.Users.Where(@"FirstName == ""\""Bob\""""");
// From comments below
Context.Users.Where("FirstName == \"\"Bob\"\"");
这些都不起作用。任何帮助将不胜感激。
谢谢。
EDIT - 我现在只是在处理生成的字符串。实际的字符串是从模型生成的。
【问题讨论】:
-
你能用
string.Replace或RegEx吗? -
也许是这个?
"FirstName == \"\"Bob\"\"" -
@HamletHakobyan - 不幸的是,这也不起作用。
-
@DJKRAZE - 不确定这有什么帮助?他们最后仍然会产生一个字符串。
-
@RichardRout 你可以尝试像这样
Context.Users.Where("FirstName == @0", "\"Bob\"");参数化你的查询
标签: c# dynamic-linq