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 № 1Po 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.