在ASP中运行自定义查询.净MVC

本文关键字:查询 MVC 自定义 运行 ASP | 更新日期: 2023-09-27 18:16:23

我是使用ASP.net MVC框架(和c#也是)的新手。我有更多的经验使用JSP + JSTL MVC框架。我想知道如何运行自定义查询,如果我需要做更复杂的sql。在JSP框架中,我习惯于创建dao来查询sql表,而在ASP.net中似乎不是这样。对于ASP.net,我注意到我们使用LINQ从模型对DBSet对象进行查询。

我的问题:

  1. 我在哪里写自定义查询代码?在模型中?
  2. 怎么写?是通过某种db。执行语句?
  3. 我需要更改配置吗?
  4. 示例和其他资源将是很好的。

我试着在asp.net上浏览asp.net MVC教程,但我找不到任何东西。

在ASP中运行自定义查询.净MVC

如何执行SQL查询完全取决于您使用的数据访问框架。您可以使用ADO编写普通SQL。. NET和执行查询的方式很像你所期望的。

回答你问题的第二部分,这应该在数据访问层完成,与你的ASP完全无关。NET MVC应用程序本身。任何用于实例化和与抽象层中的类通信的必要逻辑都应该驻留在控制器中(并且,理想情况下,通过使用接口和/或服务层与应用程序松散耦合)。

在这个意义上,是的,它属于模型。但是,请记住,从概念上讲,ASP中的"M"。. NET MVC是域模型(即前面提到的数据访问层),而不是视图模型。视图模型只是一个独立的包装器,用于存储给定视图的相关数据,在大多数情况下,应该完全没有任何逻辑。

在JSP框架中,我习惯于创建dao来查询sql表而在ASP.net中似乎不是这样。

非常相似,您应该有一个带有DAO对象的单独的DAL项目,并从业务层(另一个单独的项目)引用这些对象。ASP。. NET MVC项目本身将添加对业务层项目的引用,而业务层项目又将添加对DAL的引用。这样,您就可以保持三层架构:

UI (ASP.NET MVC project)
          |
          |
    Business Layer (POCO objects (= to POJO), validation, biz logic) - separate project(s), depending on whether you put your POCO objects in the same project or not.
          |
          |
      Data Access Layer (You can use ADO.NET, EF (LINQ), etc.)

一个ASP。. NET MVC应用程序通常由3个文件夹组成:Models, Views, Controllers,但通常放在Models文件夹中的所有内容都是您的业务对象,所以我倾向于完全摆脱该文件夹,只留下ViewsControllers文件夹。视图基本上就是html标记。controller类简单地从业务层调用方法,并将结果传递给视图。例如,一个UserController类看起来像这样:

public class UserController : Controller 
{
        public ActionResult Index()
        {
            var allUsers = UserBusLayer.User.GetAll();
            return View(allUsers);
        }
}