Nel video pluralsight di http://www.asp.net/mvc. Il membro dell'oggetto modello è stato modificato in virtuale nel mezzo di un video. Non ha fornito una descrizione dettagliata del cambiamento. Qualcuno potrebbe elaborare la necessità?Perché i membri dell'oggetto dominio (POCO) sono definiti virtuali?
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; }
}
proposito, è il IDBContext
nel video segue Pattern Repository? Il codice dovrebbe utilizzare il modello di repository per la migliore pratica se non lo è?
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;
}
Aggiornamento: Dovrebbe essere una varietà di Pattern Repository. Generalmente il pattern di repository crea una classe per un oggetto modello IRepository<T>
. Questo ha messo tutto l'oggetto del modello in un'interfaccia Restaurants
, Reviews
. Come questo è paragonabile a quello tipico?
Un POCO non deve mai essere un oggetto dominio. Nel tuo esempio, ogni entità è un modello PERSISTENCE, non DOMAIN. E il modello di repository NON crea una classe per un oggetto modello. Fornisce un'astrazione e funge da facciata per l'accesso alla persistenza, in questo caso l'EF orm. – MikeSW