存储库模式和实体框架

Nih*_*ist 5 entity-framework repository-pattern

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

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

IUserRepository
User CreateUser();
void UpdateUser();
Run Code Online (Sandbox Code Playgroud)

现在,如果我要向用户添加一个地址,它应该在存储库中吗?或者在用户实例上

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

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

有什么想法吗?

Cra*_*ntz 3

这并不是一个真正的 EF 问题;而是一个 EF 问题。这更多是一个存储库模式问题。拿起一本 DDD 书籍并阅读聚合根的概念。如果一个地址“没有用户就毫无用处”,那么它可能不应该在存储库上有 CRUD 方法,正如您所说。但聚合根概念使这变得更加正式。