Robię sobie projekt do nauki EF i natknąłem się na problem.
W bazie SQL są pewne obiekty które są przypisywane użytkownikom z AD (po Guidzie). Dane o użytkowniku (Imię, Nazwisko, email, Guid, stanowisko,przełożony ...) pobierane są z AD, lecz dałem możliwość modyfikowania tych danych (np zmienić stanowisko, lub managera), ale bez gmerania w AD --> zrobiłem tabelkę Users i przy jakiejkolwiek zmianie, użytkownik jest kopiowany z AD do tabelki. Nie wiem jak najlepiej skonstruować klasę encji User, aby:
-
zawierała dane usera z bazy, lub
-
zawierała dane usera z AD, lub
-
zawierała dane usera z bazy, uzupełniona danymi z AD (pola które są null w bazie)
Moja klasa User - na razie pobiera tylko z SQL, ale jeżeli nie ma w bazie użytkownika musi poszperać w AD
public class User
{
[Key]
public int Id { get; set; }
public Guid Guid { get; set; }
public Guid ManagerGuid { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
I moje repozytorium encji:
public class MyRepository
{
private DbContext context = new DbContext();
public IQueryable<User> Users
{
get { return context.Users; }
}
}
Na poziomie repozytorium sprawdzić wpierw w jednym źródle danych, później w drugim?
A może skonstruować klase User do której będą przypisane klasy ADUser i SQLUser?