EFコアMySQLは(可変)のような演算子を含んでいます

asp.net-core-webapi entity-framework entity-framework-core mysql

質問

JSON形式のレコードを返すメソッドを作成するために、EF CoreでASP.NET Web APIコアを使用しています。
私が使用するときのような演算子(%のvarible%)のために含まれ 、エラーは、以下のメッセージで発生しました:

Microsoft.EntityFrameworkCore.dllで 'MySql.Data.MySqlClient.MySqlException'型の例外が発生しましたが、ユーザーコードで処理されませんでした

追加情報:SQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックしてください。正しい構文は '+'% '

ORDER BY pStoreIdpCategoryId '4行目

シンボルのいずれかが正しい位置にないようです。
私は自分のコードとraw SQLの出力をチェックしましたが、問題は見られませんでした。
誰かが私を助けることを願っています!

var query = from p in db.Products
            join c in db.ProductCategory
                   on new { p.StoreId, p.CategoryId } equals new { c.StoreId, c.CategoryId } into pc
            from c in pc.DefaultIfEmpty()
            where (p.ProductName.Contains("a"))
            select p;  

query.ToList()

未加工SQL

SELECT `p`.`StoreId`, `p`.`ProductId`, `p`.`CategoryId`, `p`.`Description`, `p`.`ImagePath`, `p`.`ProductName`, `p`.`SalesPeriodFrom`, `p`.`SalesPeriodNeverEnd`, `p`.`SalesPeriodTo`, `p`.`SalesUnit`, `p`.`UnitPrice`, `c`.`StoreId`, `c`.`CategoryId`, `c`.`CategoryName`
FROM `Products` AS `p`
LEFT JOIN `ProductCategory` AS `c` ON (`p`.`StoreId` = `c`.`StoreId`) AND (`p`.`CategoryId` = `c`.`CategoryId`)
WHERE `p`.`ProductName` LIKE ('%' + 'a') + '%'
ORDER BY `p`.`StoreId`, `p`.`CategoryId`

Windows 7 Professional x64
Visual Studio 2015 Professional
MySQL 5.6.17

Microsoft .NET Core 1.0.1
依存関係

   "Microsoft.ApplicationInsights.AspNetCore": "1.0.2",
   "Microsoft.AspNetCore.Mvc": "1.0.1",
   "Microsoft.AspNetCore.Routing": "1.0.1",
   "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
   "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
   "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
   "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
   "Microsoft.Extensions.Configuration.Json": "1.0.0",
   "Microsoft.Extensions.Logging": "1.0.0",
   "Microsoft.Extensions.Logging.Console": "1.0.0",
   "Microsoft.Extensions.Logging.Debug": "1.0.0",
   "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
   "MySql.Data.EntityFrameworkCore": "7.0.5-IR21",
   "System.Linq.Dynamic.Core": "1.0.6.6"

受け入れられた回答

MySql.Data.EntityFrameworkCoreを「7.0.6-IR31」から「6.10.0-alpha」に変更すると、有効なSQL構文が得られることがわかりました。

6.10.0-alphaはより新しいものです。

しかしながら、別の問題が生じる。こちらをご覧ください。

linq内のメソッド引数からパラメータを使用する

私はバグが更新によって修正されるのを待つ以外に選択肢がないと思う。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ