我使用带有EF的Repository Pattern在线查看了很多示例。但他们都没有真正谈到与相关实体合作。
比如说用户可以有多个地址。
IUserRepository
User CreateUser();
void UpdateUser();
现在,如果我要向用户添加地址应该是否应该存储在存储库中?要么 在用户实例上
我觉得存储库模式可以用于实体上的CRUD和Get Operations。但是当涉及到与相关实体合作时,它们应该真正在实体上定义[大多数]
就像在这种情况下,如果没有用户,地址就没用了,不应该在实体上吗?
有什么想法吗?
答案 0 :(得分:4)
这不是一个EF问题;它更像是一个存储库模式问题。拿起DDD书,阅读聚合根的概念。如果一个地址“没有用户就没用”,那么它可能不应该像存储库那样在存储库中使用CRUD方法。但是聚合根概念使得这更加正式。