存储库模式和实体框架

时间:2009-10-29 04:45:21

标签: entity-framework repository-pattern

我使用带有EF的Repository Pattern在线查看了很多示例。但他们都没有真正谈到与相关实体合作。

比如说用户可以有多个地址。

IUserRepository
User CreateUser();
void UpdateUser();

现在,如果我要向用户添加地址应该是否应该存储在存储库中?要么 在用户实例上

我觉得存储库模式可以用于实体上的CRUD和Get Operations。但是当涉及到与相关实体合作时,它们应该真正在实体上定义[大多数]

就像在这种情况下,如果没有用户,地址就没用了,不应该在实体上吗?

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

这不是一个EF问题;它更像是一个存储库模式问题。拿起DDD书,阅读聚合根的概念。如果一个地址“没有用户就没用”,那么它可能不应该像存储库那样在存储库中使用CRUD方法。但是聚合根概念使得这更加正式。