ca9*_*3d9 5 c# domain-driven-design entity-framework repository-pattern
在http://www.asp.net/mvc的复数视频中.模型对象成员在视频中间更改为虚拟.他没有详细描述这一变化.任何人都可以详细阐述必要性吗?
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; }
}
Run Code Online (Sandbox Code Playgroud)
BTW,是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;
}
Run Code Online (Sandbox Code Playgroud)
更新:它应该是各种存储库模式.通常,存储库模式为一个模型对象创建一个类IRepository<T>.这个将所有模型对象放在一个界面Restaurants中Reviews.这个与典型的相比如何?
总而言之,为了使POCO与EF一起工作,它创建了从原始实体类(POCO)继承的代理类.所以它需要的属性是虚拟的,以覆盖它们,以便它可以插入EF更改跟踪和懒加载基础性工作.否则,默认情况下不会启用更改跟踪或延迟加载.
要获得完整的答案,您可能需要阅读使用POCO实体和创建POCO代理的要求
| 归档时间: |
|
| 查看次数: |
722 次 |
| 最近记录: |