【问题标题】:Is it good practice to use a generic repository or should each entity have its own repository?使用通用存储库是一种好习惯,还是每个实体都应该有自己的存储库?
【发布时间】:2012-06-20 15:30:51
【问题描述】:

对 Asp.Net MVC 还很陌生,我正在关注 Pro ASP.Net MVC 3 Framework 书中的 SportsStore 示例。

一切正常,但现在我开始用一些额外的实体来增强基本示例。哪种方法更好: - 每个实体是否应该有自己的存储库(这似乎是重复代码) 要么 - 是否应该有类似实体的通用存储库?

是否还有其他项目可以提供相同架构的更完整示例?

【问题讨论】:

标签: entity-framework generics repository-pattern


【解决方案1】:

这在互联网上引起了激烈的争论。如果你在 SO 使用搜索,你可以找到很多关于它的线程。最后只是归结为您的个人喜好。尝试这两种选择,然后决定哪一种最适合您。

我开始为每个实体创建单独的存储库,但感觉像是大量不必要的工作(以及大量代码重复),所以最近我开始使用通用存储库,这对我来说非常有效。

有关更多信息,请参阅此主题:Advantage of creating a generic repository vs. specific repository for each object?

【讨论】:

  • 使用单独的存储库,如何在实体之间连接或跨连接进行聚合?
  • 如果你愿意,你可以在你的存储库中加入。例如:如果您有 UserRepository 和 BlogPostRepository,您可以在 BlogPostRepository 中创建一个方法“GetBlogPostsByUserId”,并在该方法中加入“User”和“BlogPost”表。但这只是一种方法,还有很多其他方法。
  • 你也可以使用 UnitOfWork
猜你喜欢
  • 2019-01-17
  • 2012-03-10
  • 2021-01-29
  • 1970-01-01
  • 2012-02-08
  • 2022-09-30
  • 2011-09-23
  • 2013-04-02
  • 1970-01-01
相关资源
最近更新 更多