首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在领域驱动设计中抽象实体框架(如何避免IDbSet)

在领域驱动设计中抽象实体框架(如何避免IDbSet)
EN

Stack Overflow用户
提问于 2015-11-22 01:04:44
回答 1查看 81关注 0票数 0

我正在尝试在一个领域驱动设计项目中使用实体框架。

在我的理解中,Domain层应该对持久性实现一无所知。所以我有两个接口-- IRepositoryIUnitOfWork。我提供了Data层的实现。

我的问题是,我似乎找不到一种方法来避免在IRepositoryIUnitOfWork中使用实体框架的IDbSet

我想问两个问题--如何从Domain层抽象实体框架?如果我切换到NHibernate,我能完全避免这个问题吗?非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2015-11-24 14:14:55

在存储库接口上,定义查找方法,如

代码语言:javascript
复制
Task<MyAggregate> FindById(MyAggregateId id);

和赋值方法,如

代码语言:javascript
复制
Task Update(MyAggregate aggregate);

这清楚地表明存储库在其接口上使用域对象-封装完成!

如果您稍后切换到NHibernate,则需要在域和服务层中更改以下内容:Nothing

注意:之所以有Task<T>Task返回值,是因为存储库交互最好是异步实现的。如果你不需要/想要它,你也不需要任务包装器。

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

https://stackoverflow.com/questions/33846137

复制
相关文章

相似问题

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