【发布时间】:2016-03-08 04:48:59
【问题描述】:
我有一个域模型、一个存储库和实体框架。我不希望我的域绑定到 EF 或一般的持久层。
因此,我创建了一个存储库以将 db.Users.Where(u => u.Team == "MyTeam") 之类的内容排除在我的域之外。
在实现通用存储库模式后,如果我想要特定团队中的用户列表,我使用UserRepository.GetUsersByTeam("MyTeam")。
问题是我的 UserRepository 返回IEnumerable<EntityFrameworkUser>,而不是IEnumerable<DomainUser>,为了返回IEnumerable<DomainUser>,我需要将DomainUser 映射到某个地方的EntityFrameworkUser。
那么,您具体在哪里从 EntityFrameworkUser 类映射到 DomainUser 类?
除了查询逻辑之外,存储库是否应该封装映射逻辑?
如果我想要一个域用户对象的集合,UserRepository.GetUsersByTeam("MyTeam") 的调用堆栈是什么样的?
搜索只找到了我通常引用 Martin Fowler 的一般回复。我需要一个具体的例子来参考。
【问题讨论】:
-
也许这应该在programmers.stackexchange.com 上,因为它是白板式的?
标签: c# entity-framework repository-pattern datamapper