带有 linqToEntity 的动态字段 (c#)
我的代码:
public List<tblBook> GetBook(string NameField, string Value)
{
return (this.Entities.Book.Where(
"it.@p0 NOT LIKE @p1",
new ObjectParameter("p0", string.Format("%{0}%", NameField)),
new ObjectParameter("p1", string.Format("%{0}%", Value)))).ToList();
}
错误:
查询语法无效。近期“@p0”,第 6 行,第 7 列。
my code :
public List<tblBook> GetBook(string NameField, string Value)
{
return (this.Entities.Book.Where(
"it.@p0 NOT LIKE @p1",
new ObjectParameter("p0", string.Format("%{0}%", NameField)),
new ObjectParameter("p1", string.Format("%{0}%", Value)))).ToList();
}
error :
The query syntax is not valid. Near term '@p0', line 6, column 7.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
字段必须是静态的。您不能在字段名称中使用通配符。此
Where
扩展仅在内部构建 Entity SQL 查询。 Entity SQL 遵循与普通 SQL 相同的规则。编辑:
正确的代码是:
您必须传递整个字段的名称,并且必须验证它 - 实体 SQL 注入也存在。
Fields must be static. You cannot use wild cards in a field name. This
Where
extensions only builds Entity SQL query internally. Entity SQL follows the same rules as common SQL.Edit:
Correct code is:
You must pass whole field's name and you must validate it - Entity SQL injections exists as well.