<分区>
假设我有一个博客,上面有不同作者的文章,作者应该能够看到他们写了哪些文章。
现在我使用 Entity Framework 的数据库上下文编写查询。
现在的问题是在 Controller 或模型类的特定操作方法中查询应该去哪里。
我有点新,这件事一直让我感到困惑。
<分区>
假设我有一个博客,上面有不同作者的文章,作者应该能够看到他们写了哪些文章。
现在我使用 Entity Framework 的数据库上下文编写查询。
现在的问题是在 Controller 或模型类的特定操作方法中查询应该去哪里。
我有点新,这件事一直让我感到困惑。
最佳答案
因此放置查询的最佳位置是在 Controller 操作之外,通常用于所有类型的持久性查询的位置是存储库 (Repository Pattern) 或某些业务逻辑层 - 实际上取决于应用程序的复杂性。
简而言之,存储库模式实际上是关于在应用程序中只有一个地方包含持久化知识以及如何查询它,通常我们可以找到CRUD。里面的操作。此外,通常每个“域上下文”(订单、博客文章等)都有一个存储库。
例如(小型应用程序的工作流程):
OrderController -> OrderRepository -> Persistance
CreateOrderAction -> SaveOrder -> Query
因为。想想看。如果您有 OrderController
,然后假设有一个 SpecialOrderController
但两者都需要订单数据怎么办?在那种情况下,您最终会遇到查询代码重复,如果是存储库模式的情况,您可以避免这个“陷阱”。如你所知DRY原则是我们工艺中最伟大的原则之一。
关于c# - asp.net mvc中写查询的正确位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15312117/