Назначьте пользователя AspNetUserRole в приложении Console Line C #

У меня есть программа, в которой я читаю CSV-файл с адресами электронной почты и пользовательскими данными, помещаю его в приложение консоли C # и записываю каждый из них в таблицу AspNetUser (при условии, что он проходит проверку).

Я могу написать нового пользователя с помощью следующего кода: -

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

Как я могу отсюда назначить их роли, чтобы добавить запись в таблицу AspNetUsersRole? Таблица не доступна через LINQ? Кажется, у меня нет доступа к UserManager или ApplicationUser в приложении консоли?

Заранее спасибо!


person Mike Upjohn    schedule 22.08.2016    source источник
comment
Если вы используете Identity, вы должны использовать классы UserManager и RoleManager для управления вашими пользователями / ролями.   -  person DavidG    schedule 22.08.2016
comment
Но как я могу получить к ним доступ из консольного приложения? Intellisense просто предлагает мне создать новый одноименный класс? Мне нужно добавить ссылку?   -  person Mike Upjohn    schedule 22.08.2016


Ответы (1)


Если вы используете Identity, вы должны использовать классы UserManager и RoleManager для управления вашими пользователями / ролями:

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();
person DavidG    schedule 22.08.2016