3

MySql で EF4.1 を使用していますが、LIKE クエリが機能しません。アプリのような名前の製品のリストを取得したい

.Where(p=>p.Name.Contains("app") は、Apple という名前の製品を 1 つだけ返します。生成された SQL には、LIKE '%app%' の代わりに LOCATE 演算子が含まれています。

SqlQuery("select * from product where name like '%@p0%'", "app") を使用して sql コマンドを実行しようとしましたが、役に立ちませんでした。製品を再実行しません。

MySql db に LIKE を書く方法を教えてください。ありがとう

4

1 に答える 1

0

EF (yo no 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 に答える