在http://www.asp.net/mvc的複數視頻。模型對象成員在視頻中被改爲虛擬。他沒有詳細描述這一變化。任何人都可以闡述必要性嗎?爲什麼域對象(POCO)的成員是虛擬的?
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; }
}
順便說一句,是IDBContext
在視頻之後的存儲庫模式?如果代碼不是使用存儲庫模式進行最佳實踐,那麼該代碼應該如何使用
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;
}
更新:這應該是一個多種資源庫模式。通常存儲庫模式爲一個模型對象IRepository<T>
創建一個類。這一個把所有的模型對象放在一個界面Restaurants
,Reviews
。這個與一個典型的相比如何?
POCO不應該是域對象。在你的例子中,每個實體都是PERSISTENCE模型,而不是DOMAIN。存儲庫模式不會爲一個模型對象創建一個類。它提供了一個抽象,並作爲持久訪問的外觀,在這種情況下是EF orm。 – MikeSW 2012-03-31 09:19:04