У меня есть проект модульного тестирования, использующий EffortDb для проекта с EntityFramework6, использующий MySql в качестве базы данных и код первой миграции. При выполнении тестов в проекте есть исключение при создании экземпляра DbContext с использованием соединения Effort:
System.ArgumentException : The connection parameter must reference an object of type MySql.Data.MySqlConnection
Parameter name: connection
Если я закомментирую классы для EfConfiguration и MigrationGenerator, проблема исчезнет и тестовый запуск в обычном режиме с помощью Effort.
Вопрос заключается в следующем: как создать проект с настраиваемыми классами генератора миграции для проекта с Mysql и запустить тестовую настройку без необходимости комментировать или код ниже для каждого использования? Мне кажется, что простой факт их определения вызывает проблему.
Это код для dbcontext:
public class Xxx : MySqlMigrationSqlGenerator
{
protected override MigrationStatement Generate(DropForeignKeyOperation op)
{
var ret = base.Generate(op);
ret.Sql = ret.Sql.Replace("dbo.", "");
return ret;
}
}
public class Mu : MySqlEFConfiguration
{
public Mu() : base()
{
this.SetMigrationSqlGenerator("MySql.Data.MySqlClient", () => { return new Xxx(); });
}
}
public class NivaDbContext : DbContext
{
//context content irrelevant
}