c# - asp.net mvc中写查询的正确位置

标签 c# asp.net asp.net-mvc entity-framework entity-framework-5

<分区>

假设我有一个博客,上面有不同作者的文章,作者应该能够看到他们写了哪些文章。

现在我使用 Entity Framework 的数据库上下文编写查询。

现在的问题是在 Controller 或模型类的特定操作方法中查询应该去哪里。

我有点新,这件事一直让我感到困惑。

最佳答案

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/

相关文章:

c# - 数据访问层的静态方法与依赖注入(inject)

c# - MVC Razor 字符问题

c# - WPF路径碰撞检测?

使用 Slug 的 C# Mvc 通用路由

asp.net - 如何在 Application_Start 发生后动态添加 bundle ?

asp.net - 大量插入用户/密码到 ASP.Identity 用户和成员(member)表

c# - 如何让 ActionFilters 和 OutputCaching 一起工作?

c# - 使用 EF 查询映射 sql 查询不起作用

c# - 将 Action 注入(inject) UserControl

asp.net - EntityFramework Core 在加入后获得多个结果