关于Cannot resolve scoped service from root provider解决方案

在静态类或ServiceProvider来至于静态属性或类已AddSingleton的方式添加进IServiceCollection,此时调用service.GetService<ICoreRepository>(),则会出现Cannot resolve scoped service from root provider异常

解决方法:在调用时如下使用

 

复制代码
  public static class SeedData
    {
        public static void Initialize(IServiceProvider serviceProvider)
        {
            using (var serviceScope = serviceProvider.CreateScope()) //手动高亮
            {
                var dbContext = serviceScope.ServiceProvider.GetService<BlogDbContext>(); //手动高亮
                if (dbContext.Database.EnsureCreated() || !dbContext.Set<User>().Any())
                {
                    var user = new User
                    {
                        DisplayName = "BugChang",
                        Password = "000000..",
                        UserName = "BugChang"
                    };
                    dbContext.Set<User>().Add(user);
                    dbContext.SaveChanges();
                }
            }
        }
    }
复制代码

 

 

 

 

https://www.jianshu.com/p/8e928947d833

posted @   BloggerSb  阅读(442)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2019-04-18 C# C/S程序出错:ContextSwitchDeadlock is detected
2016-04-18 301重定向
点击右上角即可分享
微信分享提示