Использование DbCompiledModel с усилием в базе данных памяти - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть проект модульного тестирования, который использует базу данных в памяти. База данных в памяти сделана из существующей локальной базы данных, созданной основным проектом, и содержит все модели, на которых я хочу протестировать.

Я настроил кеширование своих моделей следующим образом:

 public sealed class ConfigurationCaching : DbConfiguration
 {
     public ConfigurationCaching() : base()
     {
         var pathEDMX = Path.Combine(AppDomain.CurrentDomain.BaseDirectory);
         this.SetModelStore(new DefaultDbModelStore(pathEDMX));
     }
 }

И поставить

[DbConfigurationType(typeof(ConfigurationCaching))]

О DbContext для основного проекта. Кеширование работает как положено. Чтобы ускорить мои юнит-тесты, я хочу использовать тот же механизм кэширования.

Соединение Effort выполняется путем отправки соединения экземпляру DbContext. Затем в моем классе, который реализует DbMigrationsConfiguration с использованием класса DbContext в качестве общего, у меня есть следующий код:

AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;


var migrator = new DbMigrator(this);
_pendingMigrations = migrator.GetPendingMigrations().Any();

Ошибка при var migrator = new DbMigrator (this); заявив

Использование одной и той же DbCompiledModel для создания контекстов для разных типов серверов баз данных не поддерживается. Вместо этого создайте отдельную DbCompiledModel для каждого типа используемого сервера.

Можно ли это решить или невозможно использовать сгенерированный EDMX. Если я закомментирую строку DbMigrator, она компилируется, но я не вижу никакого улучшения в скорости.

...