如何解决内存数据库注册 InstancePerDependency System.OutOfMemoryException
我正在更新 DbContext 的注册方式。在单元测试中,注册内存数据库的旧方法如下
builder.RegisterInstance(new DbContextOptionsBuilder<OneContext>()
.UseInMemoryDatabase(Guid.NewGuid().ToString()).Options);
builder.RegisterType<OneContext>().InstancePerDependency();
我使用 AddDbContext 的新方法
services.AddDbContext<OneContext>(options => options
.UseInMemoryDatabase(Guid.NewGuid().ToString()),ServiceLifetime.Transient);
在将其注册为 InstancePerDependency 进行解析时,我使用了每个上下文的作用域,如下文中的一篇文章所述。
using (ILifetimeScope scope = container.BeginLifetimeScope("KEY"))
{
scope.Resolve<IService>(); // Instance #1
using (ILifetimeScope childScope = scope.BeginLifetimeScope())
{
childScope.Resolve<DbContext>();
childScope.Resolve<IService>();
}
}
我在这里做错了什么?你介意告诉我吗。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。