ASP.NET MVC 在哪里编写查询逻辑

标签 asp.net asp.net-mvc

我正在攻读 MS 证书。我已经在测试中遇到了3个错误,并在网上找到了确认。
现在我真的没有找到明确的答案,所以我在这里发布。
问题来了:

You are maintaining an existing MVC application. Users report that when querying the database for a list of products that meet specific criterion, some products do not appear in the list. The original application developer followed common MVC structure conventions. You need to locate the file that is causing the problem.
In which folder should you look for the file?

可能的答案是:

  • Controller
  • 型号
  • 观看次数
  • 内容

我只想知道是我自己感到困惑,还是问题/答案本身令人困惑。

最佳答案

Controllers 最有可能是正确答案

这是一个非常令人困惑的问题,因为它的答案很大程度上取决于您使用的 DAL 策略/库。如果它说您使用的是 EF,那么答案显然是 Controllers,但如果您使用更多程序化的东西(即存储库),那么事情就会变得更加困惑。

但是。当您使用存储库时,您可能会将它们放在一个单独的项目(程序集)中,因此它不会是任何列出的文件夹(如果我们谈论的是 RAW 查询)。

因此,在存储库的情况下,您仍然可以争辩说数据获取/操作仍将在 Controller 中完成,即使它可能不是直接数据查询(SQL、eSQL 或 LINQ)而是调用存储库(或者调用存储库的更好的服务)。

模型中有什么?

模型通常包含类。要么非常简单(作为 POCO 和/或 DTC),要么它们确实包含更多的 智能 类(作为实体)。但无论如何,您不会在 Models 文件夹内的类中编写查询,而是在 将使用 Models 类的 Controller 中。无论是瘦的还是富的。

关于ASP.NET MVC 在哪里编写查询逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6492718/

相关文章:

asp.net - 在 ASP.NET MVC5 中执行长时间运行任务的最佳方法

c# - 路由参数的 XML 注释

asp.net-mvc - ASP.NET MVC : Authorization inside an Action - Suggested Patterns or this is a smell?

asp.net-mvc - 如何在 MVC View 中处理 "magic strings",例如元素 ID :s?

asp.net - VB 的 Razor View 不支持 @Model?

c# - 动态创建的按钮,但为它们创建的事件未触发

c# - 组合框仅在本地正确显示

c# - 在 C# 中对数据求和的最有效方法

c# - 在 asp.net 中将 6 位数字转换为时间

javascript - 在 javascript 中使用 Asp.Net WebForms 上的资源本地化文本