Я столкнулся с проблемой при попытке создать схему базы данных в MySQL с использованием EF Core.
Ошибка:
"У вас есть ошибка в SQL синтаксис; проверьте руководство, соответствующее вашей MySQL версии сервера, чтобы узнать правильный синтаксис для использования рядом с MY_SHCEME_NAME "
EF Core версия: 2.2.6
MySQL версия сервера : 5.7.19
Код:
using (var dbEntities = new MyDbContext())
using (var transaction = dbEntities.Database.BeginTransaction(System.Data.IsolationLevel.Serializable))
{
try
{
dbEntities.Database.ExecuteSqlCommand($"CREATE DATABASE {databaseConnection.Schema}");
// other commands...
dbEntities.SaveChanges();
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
log.Error("ConfigureDatabase transaction failed!", ex);
throw;
}
}
Этот фрагмент кода работал с тем же сервером MySQL при использовании ASP. NET (. NET Framework). Я пробовал соединители Pomelo и MySQL .Data.EntityFrameworkCore, а также при попытке выполнить аналогичную операцию с использованием ADO. NET API.
Позже я столкнулся с этой проблемой Pomelo , где они выглядят чтобы решить ту же проблему, поэтому в «MyDbContext» я добавил:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseMySql(
ConnectionStringManager.Instance.ConnectionString,
mySqlOptionsAction => mySqlOptionsAction.ServerVersion(new Version(5, 7, 19), ServerType.MySql));
}
Это также не помогло. Кажется, что другие функции ядра EF работают нормально и позволяют читать и записывать в базу данных.