0

私はEメールアドレスとユーザデータのCSVファイルを読み込んでC#コンソールラインアプリケーションに持ってきて、それぞれをAspNetUserテーブルに書き込むプログラムを持っています検証をパスします)。コンソールラインアプリケーションでAspNetUserRoleにユーザを割り当てるC#

私は次のコードを経由して、新規ユーザーに書くことができます

: -

AspNetUser user = new AspNetUser(); 
user.Id = Guid.NewGuid().ToString(); 
user.UserName = username; 
// More Code 
db.AspNetUsers.Add(user); 
db.SaveChanges(); 

どのように私はここから、そうAspNetUsersRoleテーブルにレコードを追加し、役割に割り当てることができますか?テーブルはLINQからアクセスできません。コンソール・アプリケーションでUserManagerまたはApplicationUserにアクセスできないようですか?

ありがとうございます!

+0

Identityを使用している場合は、ユーザー/ロールを管理するために 'UserManager'と' RoleManager'クラスを使用する必要があります。 – DavidG

+0

どうすればコンソールアプリケーションからこれらにアクセスできますか? IntelliSenseでは、同じ名前の新しいクラスを作成することができますか?それは私が追加する必要がある参照ですか? –

答えて

1

あなたはアイデンティティを使用している場合は、ユーザー/ロールを管理するためにUserManagerRoleManagerクラスを使用する必要があります。

var user = new AspNetUser 
{ 
    Id = Guid.NewGuid().ToString(), 
    UserName = username 
}; 

var userManager = new UserManager<AspNetUser>(); 
userManager.Create(user, "password"); 
userManager.AddToRole(user.Id, "RoleName"); 

をしかし、あなたが本当にあなたのコンテキストに固執する場合は、ナビゲーションプロパティを使用することができます

var user = new AspNetUser 
{ 
    Id = Guid.NewGuid().ToString(), 
    UserName = username 
}; 

db.AspNetUsers.Add(user); 
var role = db.AspNetRoles.Single(r => r.Name = "RoleName"); 
user.Roles.Add(role); 
db.SaveChanges(); 
関連する問題