Struktura encji: Dziedziczenie, zmień typ obiektu

Powiedzmy, że mam 2 klasy w modelu: Użytkownik (zmapowany do tabeli USERS) i PrivilegedUser (dziedziczy użytkownika, dodatkowe informacje są przechowywane w tabeli PRIVILEGEDUSERS).

Teraz mam wiersz w UŻYTKOWNIKACH (i wystąpienie użytkownika) i muszę przekonwertować tego użytkownika na PrivilegedUser (tj. Utworzyć rekord w PRIVILEGEDUSERS z tym samym identyfikatorem). Czy można to zrobić bez usuwania / wstawiania?

Problem polega na tym, że nie masz reprezentacji PRIVILEGEDUSERS w modelu, więc nie możesz utworzyć tylko tej części PrivilegedUser.

To był tylko przykład. PrivilegedUser może mieć jakiegoś menadżera rabatowego lub osobistego lub cokolwiek innegododatkowo do zwykłych właściwości użytkownika. Jednocześnie istnieją inne tabele, które muszą odwoływać się do użytkowników bez względu na konkretny typ użytkownika. Zaimplementowałem go za pomocą trybu dziedziczenia Tabela na typ. Na poziomie bazy danych bardzo łatwo jest przekonwertować użytkowników z jednego typu na inny (wystarczy wstawić lub usunąć rekord z tabeli rozszerzeń). Ale w EF masz tylko UserSet, który przechowuje zarówno obiekty User, jak i PrivilegedUser. Dlatego pytam, czy możliwe jest zastąpienieistniejący Obiekt użytkownika z PrivilegedUser zachowujący istniejący identyfikator i bez usuwania rekordu z tabeli UŻYTKOWNICY.

questionAnswers(5)

yourAnswerToTheQuestion