作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我要搜索这个:
Post Cereal
得到这个:
Post Honey Nut Cereal
通配符是空格。
我知道我可以执行 SPLIT 和一系列 AND 和 Contains() 并将每个术语作为规范对象转换为 Linq 表达式,但是没有办法在发送到 SQL 的术语中使用通配符吗?我查看了 Linq to SQL 中的 SQL 函数,但我不确定它在 Linq to Entities 中是什么。
我想做这样的事情:
term = '%' + term.Replace(' ', '%') + '%';
db.table.where( p => System.Data.Objects.SqlClient.SqlFunctions
.SqlMethods.Like(p.fieldname, term) );
有什么建议吗?
最佳答案
我相信你可以使用 SqlFunctions.PatIndex :
dt.Table.Where(p => SqlFunctions.PatIndex(term, p.fieldname) > 0);
SqlFunctions.PatIndex 的行为与 SQL LIKE 相同运算符(operator)。它支持所有标准通配符,包括:
SqlFunctions.PatIndex 通常在 SqlMethods.Like 不可用时可用(包括在 MVC Controller 中)
关于c# - Linq 实体 (EF 4.1) : How to do a SQL LIKE with a wildcard in the middle ( '%term%term%' )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7689284/
我是一名优秀的程序员,十分优秀!