2012-02-19 37 views
0

我使用存储库模式和UnitOfWork。这与我的域模型一起保存在单独的项目中。我意识到,用户可能会直接去DbContext并添加一个聚合根子项。EF如何限制用户不访问DbContext并添加聚合根子项?

我应该标记除储存库和UnitOfWork以外的所有内部吗?提问的原因是,我没有看到在任何文档,示例或我迄今为止阅读的内容中提到的主题都已经完成。

回答

1

不要将DbContext暴露给您的域图层和UI层。您的存储库模式实现是一个漏洞抽象。

领域层

public interface IUnitOfWork : IDisposable 
{ 
    int SaveChanges(); 
} 


public interface IRepository<TEntity> 
{ 

} 

数据访问层

internal class UnitOfWork : DbContext, UnitOfWork 
{ 

} 


internal class Repository<TEntity> : IRepository<TEntity> 
{ 

} 
+0

谢谢,当然当我使用的UnitOfWork没有必要要么暴露的存储库。 – cfs 2012-02-20 07:59:33