2017-08-28 24 views
3
//Creates the admin ROLE 
new RoleSeed(app.ApplicationServices.GetService<RoleManager<IdentityRole>>()).Seed().GetAwaiter().GetResult(); 
//Creates the admin ACCOUNT 
new AccountSeed(app.ApplicationServices.GetService<UserManager<ApplicationUser>>()).Seed().GetAwaiter().GetResult(); 
//Adding ACCOUNT to ROLE 
new AccToRoleSeed(app.ApplicationServices.GetService<UserManager<ApplicationUser>>(), 
    app.ApplicationServices.GetService<ApplicationDbContext>()).Seed().GetAwaiter().GetResult(); 

このコードは管理者ロールとアカウントを生成し、最後にその管理ロールに追加します。 .NET Core 2.0でStartup.csのロールを生成できません

System.InvalidOperationException occurred HResult=0x80131509
Message=Cannot resolve scoped service 'Microsoft.AspNetCore.Identity.RoleManager`1[Microsoft.AspNetCore.Identity.IdentityRole]' from root provider.

はどのようにこれは、このバージョンで行うことができます:私は今

2.0.0にアップグレードする前 これは、私はこのエラーを取得する作業に使用されますか?ありがとう!

+1

これはあなたを助けるかもしれません。 https://wildermuth.com/2017/07/06/Program-cs-in-ASP-NET-Core-2-0 – immirza

+0

ありがとうございます!私はProgram.csの.net 1.1の方法を使用しました。これは明示的な方法です。 – FabiGhenof

答えて

2

SOLUTION

新しい2.0のProgram.csのデフォルトのライナーはこれをやって含まれていません、しかし、明示的な方法はまだ動作します:

public class Program 
{ 
    public static void Main(string[] args) 
    { 
     var host = new WebHostBuilder() 
      .UseKestrel() 
      .UseContentRoot(Directory.GetCurrentDirectory()) 
      .UseIISIntegration() 
      .UseStartup<Startup>() 
      .Build(); 

     host.Run(); 
    } 
} 

をまた、役割が存在する場合はチェックしていません作成する前にもう許されません:D

関連する問題