运行单元测试时,在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))