首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在具有实体框架的DDD中,上下文接口应该位于何处?

在具有实体框架的DDD中,上下文接口应该位于何处?
EN

Stack Overflow用户
提问于 2011-08-18 03:49:10
回答 2查看 401关注 0票数 0

我在我的DDD应用程序中使用Entity Framework,其中我有Domain、Infra和UI层。

我的上下文界面在这里:

代码语言:javascript
复制
public interface IDbContext
{
    IDbSet<TEntity> Set<TEntity>() where TEntity : class;
    DbEntityEntry Entry<TEntity>(TEntity entity) where TEntity : class;

    void SaveChanges();
}

我的上下文接口实际上位于域层。

你怎么看,我的上下文依赖于Entity Framework,因为我的基础存储库和整个应用程序都在使用它。

我应该把这个接口放在哪里?把它移到基础设施?我想将我的领域与任何技术隔离开来。

EN

回答 2

Stack Overflow用户

发布于 2011-08-18 03:53:43

你应该把接口移到ifra层。此外,您还应该确保此接口或实现此接口的任何类型不会直接在任何其他层中使用,因为一旦您在其他地方访问DbSetDbEntityEntry,就会有一个依赖项。

票数 1
EN

Stack Overflow用户

发布于 2012-05-05 07:01:22

我认为你应该忘记直接使用IDbContext接口。一个更好的解决方案,IMHO,是在您的域上定义repository接口,而不引用任何实体框架,并且在基础架构层中,您将为该存储库定义实现。

对模型的任何查询都将通过存储库完成,而存储库又返回一个模型或模型的IEnumrable。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7098554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档