Asp.Net Boilerplate InMemory事务

时间:2019-01-14 11:33:18

标签: asp.net-boilerplate

运行单元测试时,在AppService方法[UnitOfWork(IsolationLevel.Serializable)]上使用了以下属性时,出现以下错误:

  

消息:System.InvalidOperationException:为生成错误   警告   'Microsoft.EntityFrameworkCore.Database.Transaction.TransactionIgnoredWarning:   内存存储不支持事务。看到   http://go.microsoft.com/fwlink/?LinkId=800142”。此异常可以是   通过传递事件ID禁止显示或记录   “ 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))

0 个答案:

没有答案