/ / Wdrażanie indywidualnych kont użytkowników EF6 w projekcie osobnych podmiotów - c #, asp.net-mvc, podmiot-struktura, tożsamość

Wdrażanie indywidualnych kont użytkownika EF6 w osobnym projekcie encji - c #, asp.net-mvc, entity-framework, identity

Podczas tworzenia nowej aplikacji EF6 / MVC5 za pomocą opcji Konta indywidualne otrzymujesz aplikację internetową, która ma IdentityModels.cs który zawiera oba IdentityUser i IdentityDbContext. Mam osobną bibliotekę klas, w której wszystkie mojeistnieją jednostki, które nie mają faktycznego związku z Entity Framework, ponieważ szczerze mówiąc, moim zdaniem, nie powinny wiedzieć o technologii stosowanej do ich przechowywania.

Inne podmioty odnoszą się do ApplicationUser więc logicznie chciałbym teraz przenieść mój ApplicationUser klasa do Entities biblioteka, ale ponieważ musi dziedziczyć IdentityUser oznaczałoby to dodanie odniesienia do EF. To przede wszystkim niszczy mój pomysł umieszczenia ich w osobnej bibliotece.

Czy ktoś ma jakieś doświadczenie z tym samym problemem i / lub jak sobie z tym poradzisz?

Odpowiedzi:

1 dla odpowiedzi № 1

Po pierwsze, podmioty nigdy nie mają odniesienia do EF. To tylko zajęcia. Twój DbContext podklasa jest tym, co łączy je w Entity Framework. Druga, ApplicationUser jest Twój użytkownik. To nie jest część Entity Framework, to tylko klasa, która dziedziczy z modelu EF IdentityUser. Jeśli to jest twój problem, to musisz po prostu sobie z tym poradzić. Nie możesz całkowicie streszczenie poza Entity Framework, chyba że przestaniesz używać Entity Framework. W przeciwnym razie zawsze będzie referencja gdzieś.

Więc po prostu połącz oba konteksty, abyś mógł z nimi pracować ApplicationUser w obrębie innych jednostek wystarczy zmienić klasę, z której kontekst aplikacji dziedziczy, od DbContext do IdentityDbContext<ApplicationUser>. Następnie możesz po prostu usunąć klasę wygenerowaną dla Ciebie przez MVC, po oczywiście przełączeniu odwołania do kontekstu aplikacji AccountsController. Znów nie ma tutaj problemu z dziedziczeniem IdentityDbContext ponieważ i tak kontekst jest nieodłącznie związany z Entity Framework.