Jak przenieść MVC 5 IdentityModels.cs do osobnego zespołu
Zastanawiam się, czy ktoś wpadł na problem, który próbuję przenieśćApplicationUser
do projektu Modele (gdzie znajdują się wszystkie inne modele, w tym te związane z tabelą Użytkownicy).
Moje testowe rozwiązanie MVC 5 składa się z projektu internetowego i dwóch bibliotek klasowych: jednej dla warstwy dostępu do danych (DAL) i drugiej dla modeli. We wszystkich trzech projektach odwołuję się do AspNet.Identity.EntityFramework. W moim modelu DAL klasy I implement Repository i UnitOfWork. UnitOfWork rozszerza sięIdentityDbContext<ApplicationUser>
. ApplicationUser: IdentityUser znajduje się w bibliotece klasy modeli.
W moim projekcie internetowym UnitOfWork tworzy instancję przy użyciu Autofac DI. Dla zwykłych kontrolerów zdefiniowałem klasę bazową, która dziedziczy z kontrolera i pobiera IUnitOfWork jako parametr w konstruktorze. Wszystkie kontrolery dziedziczą po moim niestandardowym kontrolerze bazowym. Wystąpił problem zAccountController
. Ma dwa konstruktory: jeden bez parametrów, który wydaje się tworzyć instancjęApplicationDbContext
, drugi przyjmuje UserManager jako parametr.
Konstruktor bez parametrów daje mi najwięcej smutku. Próbowałem wielu rzeczy: zrobićaccountcontroller
dziedziczę po moim niestandardowym kontrolerze bazowym, a następnie spróbuj odziedziczyć go z klasy Controller. W najlepszym razie udaje mi się skompilować moje rozwiązanie, ale kiedy testuję aplikację i wypełniam użytkownika, formularz rejestracyjny otrzymuję komunikat „Obiekt nie jest instancjonowany”. Kiedy debuguję, widzę, że drugi konstruktor wAccountController
zostaje wezwany, aleUserManager
jest tam null.
Jakieś pomysły? Naprawdę doceniłbym czyjąś dzielną postawę.