2017-04-23 49 views
2

我試圖在最初創建數據庫時將一些角色種到我的身份數據庫上下文中。使用實體框架的ASP.NET MVC Core項目中的種子角色

對於我試圖執行的代碼就像是在這裏說: 公共無效ConfigureServices(IServiceCollection服務)

https://stackoverflow.com/a/29547994/985798

我在啓動級內ConfigureServices法試過這種使用這個片段:

var rolestore = 
    new Microsoft.AspNetCore.Identity.EntityFrameworkCore. 
     RoleStore<Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityRole>(identityContext); 

var roleManager = new Microsoft.AspNetCore.Identity.RoleManager 
        <Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityRole>(rolestore); 

//use rolemanager to insert roles etc. 

的問題是,它似乎沒有在新的核心項目工作,與Visual Studio 2017創建

它給了我下面的生成錯誤:

CS7036 There is no argument given that corresponds to the required formal parameter 'roleValidators' of 'RoleManager.RoleManager(IRoleStore, IEnumerable>, ILookupNormalizer, IdentityErrorDescriber, ILogger>, IHttpContextAccessor)'

即使我用其他的過載(與其他參數爲空值),則RoleManager似乎也沒有「創造」的方法了。

所以,我被困在這一點。我需要做什麼?在角色管理器的ASP.NET MVC Core實現中有什麼改變?我是否使用錯誤的東西?

+0

得到它編譯後,它可能會證明是一個問題,以執行Seed()。 Afaik計劃用於EfCore 2.0。 –

+0

你是什麼意思?在啓動時運行它應該可以正常工作,不是嗎?我知道,這可能不是最好的地方,但我認爲它應該起作用。 – Jannik

+2

而不是「新建」RoleManager嘗試在'Configure'方法中解析它。 [類似文章](https://stackoverflow.com/questions/39934201/asp-net-core-identity-add-custom-user-roles-on-application-startup/39934793#39934793)和[MusicStore](https: //github.com/aspnet/MusicStore/blob/1.0.0/src/MusicStore/Models/SampleData.cs#L22-L34) – tmg

回答

3
using Microsoft.AspNetCore.Identity; 
using Microsoft.AspNetCore.Identity.EntityFrameworkCore; 
using Microsoft.Extensions.DependencyInjection; 

public static class Seed 
{ 
    public static void Initialize(IServiceProvider provider) 
    { 
     var _context = provider.GetRequiredService<ApplicationDbContext>(); 
     var userManager = provider.GetRequiredService<UserManager<ApplicationUser>>(); 
     var roleManager = provider.GetRequiredService<RoleManager<IdentityRole>>(); 


    } 
} 

然後在下面的Configure()中的大多數代碼在startup.cs

Seed.Initialize(app.ApplicationServices); 

HTH(希望幫助)。

+0

謝謝,但HTH是什麼意思? – Jannik

+0

HTH(希望有所幫助) – mvermef

+3

如何處理非異步方法中的異步調用的await? –