我正在使用實體框架6.1.1與MySQL 5.6.24,我想批量刪除一大組記錄。 我正在使用EntityFramework.Extended來提高性能。簡單批量刪除使用EntityFramework.Extended引發語法錯誤
但是我的第一個,很簡單的更新查詢已經失敗:
DbContext.Tickets.Where(t => t.EventID == targetEvent.EventID).Delete();
此拋出mscolib的AggregateException,內部的例外是個MySqlException:
[MySqlException (0x80004005): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[youreal_TicketPlatform].[Tickets]
FROM [youreal_TicketPlatform].[Tickets] AS j' at line 1]
MySql.Data.MySqlClient.MySqlStream.ReadPacket() +501
MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId) +444
MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force) +136
MySql.Data.MySqlClient.MySqlDataReader.NextResult() +1254
MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) +2626
MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery() +137
EntityFramework.Batch.<InternalDelete>d__0`1.MoveNext() +1350
任何人都經歷同樣的錯誤?查看正在執行的實際查詢的最簡單方法是什麼?在DbContext.Database.Log上添加偵聽器不會顯示查詢。
基本上我想批量刪除大量的數據,而不必先檢索它們。
我肯定會考慮移動在這之後到SQL,它似乎不支持MySQL的足夠的業務應用... –