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?