Какой DbContext я должен использовать с EnityFramework Core? - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть приложение .Net Core с EFCore. Я создал класс ApplicationDbContext, который унаследован от IdentityDbContext.

Я бы хотел использовать AspNetUsers DbSet для авторизации и аутентификации. Затем в консоли powershell я ввел «Update-database» и в своей базе данных PostgreSQL я увидел несколько таблиц, включая AspNetRoles, AspNetUsers и т. Д., Но в проекте у меня есть только пустой ApplicationDbContext.

Что мне тогда делать? Я могу поменять все сущности в БД на объектные модели или расширить IdentityDbContext и каким-то образом добавить свойства в aspNetUsers. Более того, если я создаю объекты, я получу еще один новый DbContext, который содержит все AspNetUsers и другие.

1 Ответ

0 голосов
/ 08 ноября 2018

Если вы можете работать со стандартной реализацией IdentityUser, просто наследуйте dbContext от неуниверсального IdentityDbContext. Если вы хотите создать dbContext для Identity с пользовательским классом User, вам нужно унаследовать свой пользовательский класс dbContext от общего абстрактного класса IdentityDbContext<T>, где T - ваша пользовательская реализация User. Эта реализация должна наследоваться от уже предоставленного класса .NET IdentityUser. Также вам нужно связать вас dbContext с удостоверением в Startup.cs по коду:

services.AddIdentity<MyCustomUser, IdentityRole>()
                .AddEntityFrameworkStores<MyCustomSecurityContext>()...

Также я не знаю, почему вы пытаетесь работать напрямую с вашим контекстом идентичности. Обычно вся работа с пользователями, ролями, заявками выполняется через специальные сервисы (например, UserManager<MyApplicationUser>), которые скрывают реализацию и предоставляют красивый и понятный API. Вы можете вводить их, где вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...