0
我使用存储库模式和UnitOfWork。这与我的域模型一起保存在单独的项目中。我意识到,用户可能会直接去DbContext并添加一个聚合根子项。EF如何限制用户不访问DbContext并添加聚合根子项?
我应该标记除储存库和UnitOfWork以外的所有内部吗?提问的原因是,我没有看到在任何文档,示例或我迄今为止阅读的内容中提到的主题都已经完成。
我使用存储库模式和UnitOfWork。这与我的域模型一起保存在单独的项目中。我意识到,用户可能会直接去DbContext并添加一个聚合根子项。EF如何限制用户不访问DbContext并添加聚合根子项?
我应该标记除储存库和UnitOfWork以外的所有内部吗?提问的原因是,我没有看到在任何文档,示例或我迄今为止阅读的内容中提到的主题都已经完成。
不要将DbContext
暴露给您的域图层和UI层。您的存储库模式实现是一个漏洞抽象。
领域层
public interface IUnitOfWork : IDisposable
{
int SaveChanges();
}
public interface IRepository<TEntity>
{
}
数据访问层
internal class UnitOfWork : DbContext, UnitOfWork
{
}
internal class Repository<TEntity> : IRepository<TEntity>
{
}
谢谢,当然当我使用的UnitOfWork没有必要要么暴露的存储库。 – cfs 2012-02-20 07:59:33