我正在使用EF Core内存数据库,并且试图在使用事务的方法上运行单元测试:
using (var transaction = await _context.Database.BeginTransactionAsync())
{
_context.Update(item);
result = await _context.SaveChangesAsync();
// some other stuff
transaction.Commit();
}
但是,我从测试运行程序中收到此错误:如何抑制该错误?
最佳答案
在声明内存数据库的代码中,配置上下文以忽略该错误,如下所示:
public MyDbContext GetContextWithInMemoryDb()
{
var options = new DbContextOptionsBuilder<MyDbContext>()
.UseInMemoryDatabase(Guid.NewGuid().ToString())
// don't raise the error warning us that the in memory db doesn't support transactions
.ConfigureWarnings(x => x.Ignore(InMemoryEventId.TransactionIgnoredWarning))
.Options;
return new MyDbContext(options);
}
关于c# - 使用带有事务的内存数据库进行单元测试时,如何抑制InMemoryEventId.TransactionIgnoredWarning?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44080733/