我应该在什么时候从我的视图中的数据库ASP.NET MVC进行查询
本文关键字:NET ASP MVC 查询 数据库 什么时候 我的 视图 我应该 | 更新日期: 2023-09-27 17:58:18
问题:
如果我有一个场景,我不想更改模型属性,并且需要从某个表中再获取一个属性,那么在视图中编写查询并显示结果可以吗?
如果答案是否定的,我想知道为什么这不是一个好方法。
在我看来,你永远不应该那样做。只是因为你放松了你正在使用的工具的整个范式。
几年后,这会让您或其他维护代码的人感到困惑。如果您不想全部更改,请使用dynamic
属性、ViewBag
或其他选项来保持灵活性、测试能力等。
是。
视图不是数据结构的镜像。事实上,通常是聚合和/或操作,以便对后面的数据进行用户友好的演示。
在我看来,您永远不应该在Views
中进行查询。它被称为MVC,使用它的正确方法是分离概念。
您应该有一个Model
、Controller
、View
和Repository
(作为最简单的方法)。顾名思义,View
必须仅用于显示处理后的数据。
有关MVC最佳实践的更多信息,请点击此处。
我记得我刚开始使用MVC的时候。我不知道这件事,我的队长告诉我,这样做从来都不是一个好选择。
结论:
这只是一个设计和视角的问题。如果你正在为自己或大学做一个项目,按照你的意愿组织你的代码。如果你在专业环境中工作,你应该尊重的一些工作原则
另一个需要考虑的重要因素是:如果另一个人必须重构或修改你的代码,他必须知道在哪里可以找到方法,在哪里可以发现模型等等
首先,它之所以被称为MVC是因为关注点的分离。视图仅与用户界面有关。查询是在控制器上完成的。另一个问题是,如果你把所有东西都放在一个页面上,那就太令人困惑了,这已经违背了MVC的目的。
尽管在某些情况下,从视图查询数据库看起来更容易、更合适,但您应该做好准备,应对打破关注点分离(SoC)的后果。当你将DAL分布在多个层时,将来很难重新考虑数据库。另一个问题是安全性——如果以后决定实现数据库安全性或基于控制器的安全性,那么基于视图的查询将是一个安全点。
然而,如果项目规模较小,我会用SoC来换取性能。