3

我将 EF4.1 与 MySql 一起使用,并且无法使 LIKE 查询正常工作。我想获取名称如 app 的产品列表

.Where(p=>p.Name.Contains("app") 仅返回一个名为 Apple 的产品。生成的 SQL 包含 LOCATE 运算符代替 LIKE '%app%'

我尝试使用 SqlQuery("select * from product where name like '%@p0%'", "app") 执行 sql 命令,但无济于事。它不会重新运行任何产品。

有人可以建议我如何为 MySql db 写 LIKE。谢谢

4

1 回答 1

0

我不知道 EF(你没有 hablo Microsoft),但我敢打赌,你的文字上的通配符会干扰参数替换。

如果您尝试以下类似的方法,它有帮助吗?

SqlQuery("select * from product where name like concat('%',@p0,'%')", "app")

“@p0”是参数吗?我假设是这样。

另外,尝试:

SqlQuery("select * from product where name like '@p0'", "%app%")

还:

SqlQuery("select * from product where name like @p0", "'%app%'")

我敢打赌其中一个会起作用。

于 2013-10-04T20:15:34.747 回答