Im Plural Video von http://www.asp.net/mvc. Das Modellobjektmitglied wurde in der Mitte eines Videos in virtuell geändert. Er gab keine detaillierte Beschreibung der Änderung. Könnte jemand die Notwendigkeit ausarbeiten?Warum sind die Mitglieder des Domain-Objekts (POCO) virtuell definiert?
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, ist die IDBContext
im Video Repository-Muster folgt? Sollte der Code Repository-Muster für Best Practice verwenden, wenn dies nicht der Fall ist?
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;
}
Update: Es sollte eine Vielzahl von Repository-Muster sein. Normalerweise erstellt das Repository-Muster eine Klasse für ein Modellobjekt IRepository<T>
. Dieser legte das gesamte Modellobjekt in eine Schnittstelle Restaurants
, Reviews
. Wie sieht es mit dem typischen aus?
Ein POCO sollte niemals ein Domänenobjekt sein. In Ihrem Beispiel ist jede Entität ein PERSISTENCE-Modell, nicht DOMAIN. Und das Repository-Muster erstellt KEINE Klasse für ein Modellobjekt. Es stellt eine Abstraktion dar und fungiert als Fassade für den Persistenzzugriff, in diesem Fall das EF orm. – MikeSW