微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

内存数据库注册 InstancePerDependency System.OutOfMemoryException

如何解决内存数据库注册 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 举报,一经查实,本站将立刻删除。