Asp.Net Boilerplate InMemory Транзакции - PullRequest
0 голосов
/ 14 января 2019

При запуске модульных тестов и использовании следующего метода в методе AppService [UnitOfWork (IsolationLevel.Serializable)] я получаю следующую ошибку:

Сообщение: System.InvalidOperationException: ошибка, сгенерированная для предупреждение «Microsoft.EntityFrameworkCore.Database.Transaction.TransactionIgnoredWarning: Транзакции не поддерживаются хранилищем в памяти. Увидеть http://go.microsoft.com/fwlink/?LinkId=800142'. Это исключение может быть подавлено или зарегистрировано путем передачи идентификатора события «InMemoryEventId.TransactionIgnoredWarning» в «ConfigureWarnings» метод в «DbContext.OnConfiguring» или «AddDbContext».

Я изменил код в (добавлен ConfigureWarnings)

private static void RegisterControlCenterDbContext(IIocManager iocManager, IServiceProvider serviceProvider)
        {
            var builder = new DbContextOptionsBuilder<ControlCenterDBContext.ControlCenterDBContext>();
            builder
                .UseInMemoryDatabase(Guid.NewGuid().ToString())
                .UseInternalServiceProvider(serviceProvider)
                .ConfigureWarnings(x => x.Ignore(InMemoryEventId.TransactionIgnoredWarning));

            iocManager.IocContainer.Register(
                Component
                    .For<DbContextOptions<ControlCenterDBContext.ControlCenterDBContext>>()
                    .Instance(builder.Options)
                    //.Configuration()
                    .LifestyleSingleton()
            );
        }

Я все еще получаю ошибку, хотя. Где в ASP.NET Boilerplate я должен поставить следующее:

.ConfigureWarnings(x => x.Ignore(InMemoryEventId.TransactionIgnoredWarning))
...