最初にデータベースを作成するときに、IDのコンテキストにいくつかのロールをシードしようとしています。Entity Frameworkを使用したASP.NET MVCコアプロジェクトのシードロール
それがここで述べたように、私はコードを実装しようとしたことについては: https://stackoverflow.com/a/29547994/985798
を、私は私のスタートアップクラスの内部ConfigureServices-方法でこれを試してみました: ます。public void ConfigureServices(IServiceCollectionサービス)
をこのスニペットを使用した:
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で作成された新鮮なコア・プロジェクト、では動作しないように見えるということであり、
それは私に次のビルドエラーを与える:私は(他のパラメータにnull値を持つ)他のオーバーロードを使用する場合でも
CS7036 There is no argument given that corresponds to the required formal parameter 'roleValidators' of 'RoleManager.RoleManager(IRoleStore, IEnumerable>, ILookupNormalizer, IdentityErrorDescriber, ILogger>, IHttpContextAccessor)'
、RoleManagerはもう何の「作成」メソッドを持っていないようです。
私はこの時点で固執しています。私は何をする必要がありますか? rolemanagerのASP.NET MVCコア実装で何か変わったのですか?私は間違ったことを使用しますか? startup.cs
Seed.Initialize(app.ApplicationServices);
HTHで次にConfigure()
内のコードの大部分は、以下の
コンパイルした後、Seed()を実行すると問題が発生することがあります。 AfaikはEfCore 2.0を予定しています。 –
正確にはどういう意味ですか?スタートアップの中で実行するとうまくいくはずですね。私は知っている、それは最高の場所ではないかもしれないが、私はそれがうまくいくと思う。 – Jannik
"newing" 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