W wideo pluralsight z http://www.asp.net/mvc. Modelowy element obiektu został zmieniony na wirtualny w środku wideo. Nie podał szczegółowego opisu zmiany. Czy ktokolwiek mógłby wymyślić konieczność?Dlaczego członkowie obiektu domeny (POCO) są zdefiniowani jako wirtualne?
public class Restaurant
{
public virtual int ID { get; set; }
public virtual string Name { get; set; }
public virtual Address Address { get; set; }
public virtual ICollection<Review> Reviews { get; set; }
}
BTW, jest IDBContext
w filmie następuje repozytorium wzór? Czy kod powinien używać wzorca repozytoriów dla najlepszej praktyki, jeśli tak nie jest?
public interface IDbContext
{
IQueryable<Restaurant> Restaurants { get; }
IQueryable<Review> Reviews { get; }
int SaveChanges();
T Attach<T>(T entity) where T : class;
T Add<T>(T entity) where T : class;
T Delete<T>(T entity) where T : class;
}
Aktualizacja: Powinno być różne repozytorium wzorca. Zazwyczaj wzór repozytorium tworzy jedną klasę dla jednego obiektu modelu IRepository<T>
. Ten umieścił cały obiekt modelu w jednym interfejsie Restaurants
, . Jak ten jeden porównuje się z typowym?
POCO nigdy nie powinien być obiektem domeny. W twoim przykładzie każda jednostka to model PERSISTENCE, a nie DOMAIN. A wzorzec repozytorium NIE tworzy jednej klasy dla jednego obiektu modelu. Zapewnia abstrakcję i działa jako fasada dla dostępu trwałego, w tym przypadku EF. – MikeSW