Entity Framework 5. Illegal mix of collations for operation 'UNION'

162
24 января 2019, 11:40

Создал в MySQL тестовую базу. Одна таблица:

CREATE TABLE testentity.test (
  id INT(11) NOT NULL AUTO_INCREMENT,
  test VARCHAR(255) DEFAULT NULL,
  PRIMARY KEY (id)
)
ENGINE = INNODB,
CHARACTER SET utf8,
COLLATE utf8_general_ci;  

Пробую создать модель этой таблицы в коде с помощью EF5.
Выбираю добавить существующий элемент->модель ADO.NET EDM->коструктор EF из существующей базы->выбираю провайдера и подключение->выбираю таблицу и жму ГОТОВО.
Получаю ошибку:

В логах:

Невозможно создать модель из-за следующего исключения: "System.Data.Entity.Core.EntityCommandExecutionException: Произошла ошибка при выполнении определения команды. Дополнительные сведения приведены во внутреннем исключении. ---> MySql.Data.MySqlClient.MySqlException: Illegal mix of collations for operation 'UNION'
   в MySql.Data.MySqlClient.MySqlStream.ReadPacket()
   в MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId)
   в MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int64& insertedId)
   в MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)
   в MySql.Data.MySqlClient.MySqlDataReader.NextResult()
   в MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
   в MySql.Data.Entity.EFMySqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
   в System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior)
   в System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.<Reader>b__c(DbCommand t, DbCommandInterceptionContext`1 c)
   в System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func`3 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed)
   в System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader(DbCommand command, DbCommandInterceptionContext interceptionContext)
   в System.Data.Entity.Internal.InterceptableDbCommand.ExecuteDbDataReader(CommandBehavior behavior)
   в System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior)
   в System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
   --- Конец трассировки внутреннего стека исключений ---
   в System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
   в System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.Execute(EntityCommand entityCommand, CommandBehavior behavior)
   в System.Data.Entity.Core.EntityClient.EntityCommand.ExecuteReader(CommandBehavior behavior)
   в Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.SchemaDiscovery.EntityStoreSchemaGeneratorDatabaseSchemaLoader.LoadDataTable[T](String sql, Func`2 orderByFunc, DataTable table, EntityStoreSchemaFilterObjectTypes queryTypes, IEnumerable`1 filters, String[] filterAliases)
   в Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.SchemaDiscovery.EntityStoreSchemaGeneratorDatabaseSchemaLoader.LoadRelationships(IEnumerable`1 filters)
   в Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.SchemaDiscovery.EntityStoreSchemaGeneratorDatabaseSchemaLoader.LoadStoreSchemaDetails(IList`1 filters)
   в Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelGenerator.GetStoreSchemaDetails(StoreSchemaConnectionFactory connectionFactory)
   в Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelGenerator.CreateStoreModel()
   в Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelGenerator.GenerateModel(List`1 errors)
   в Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelBuilderEngine.GenerateModels(String storeModelNamespace, ModelBuilderSettings settings, List`1 errors)
   в Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelBuilderEngine.GenerateModel(ModelBuilderSettings settings, IVsUtils vsUtils, ModelBuilderEngineHostContext hostContext)".
Загрузка метаданных из базы данных заняла 00:00:00.4465448.
Создание модели заняло 00:01:21.3694912.  

Пробовал менять Collation всей базы, таблицы и отдельных столбцов на latin1_swedish_ci (советы из гугла) не помогло.

UPD:
Пробовал менять на EF6, но когда доходит дело до выбора таблиц для экспорта визард просто закрывается.

Answer 1

Поставил сервер версии 5.5 вместо 8.0.12 и все заработало. Спасибо @AlexanderPetrov за подсказку

READ ALSO
Проблема с Camera.main.ScreenToWorldPoint(touch.position) в Unty

Проблема с Camera.main.ScreenToWorldPoint(touch.position) в Unty

Как сделать в моей 2д игре, так, чтобы игра не отслеживала моё палец (тач), когда я нажимаю на кнопки ходьбыВ моей игре, оружие персонажа следит...

160
Не работает шаблон TreeViewItem

Не работает шаблон TreeViewItem

Я пытаюсь кастомизировать элемент TreeView с помощью шаблоновВ дереве будет 2 уровня узлов (родитель и дочерний)

189
SQLite error (5): database is locked C# Dapper

SQLite error (5): database is locked C# Dapper

Использую в проекте SQLite (устанавливал через NuGet) и DapperВ проекте используется пул потоков для чтения из БД, запись в БД производится из отдельного...

221
Что такое принцип подстановки Liskov

Что такое принцип подстановки Liskov

Изучаю подходы к SOLID принципам

155