没有任何ORM的ASP.NET MVC是一个坏主意吗?

时间:2009-10-22 17:46:06

标签: asp.net asp.net-mvc orm

我现在正在学习ASP.NET MVC,我发现ASP.NET MVC中的大多数示例都是使用ORM。在我的学习和个人项目中使用ORM没有任何问题。但在我的工作中,我们只使用ASP.NET Web表单,我们只使用存储过程。我们有数据访问层(简单的c#类)作为页面后面的asp.net代码和存储过程之间的接口。现在,如果我们想要使用ASP.NET MVC,那么在没有ORM的情况下完成它是一个坏主意。由于像rails / django这样的大多数MVC框架都内置了ORM,因此在ASP.NET MVC中使用我们自己的数据访问层是有害的。我不希望在我的控制器中有任何数据库相关的活动,如datareader,datatable。还有其他更好的解决方案吗?

3 个答案:

答案 0 :(得分:3)

如果您已经建立了DAL - 请使用它!除非你打算从现有的DAL转移到OR / M,否则你不会觉得为了它自己而转移到OR / M是有益的。

关于MVC模式的一个美好的事情是鼓励分离关注点。这意味着您正在减少应用程序中的耦合,这使您的应用程序的体系结构变得灵活和模块化。这意味着,如果您希望将现有DAL换成更现代的OR / M解决方案,则可以对您的应用程序产生最小的影响。

答案 1 :(得分:2)

完全没有害处。 ASP.NET MVC不需要ORM,但您应该拥有视图和控制器可以处理的数据模型(可能不会映射到存储过程1:1)。

如果你愿意,你可以自己动手制作ORM。 ORM可以使开发更快,以便您可以轻松地将数据库数据映射到您在应用程序中使用的对象模型。您也可以将ORM映射到存储过程。

我个人更愿意使用存储过程并通过我自己的数据访问层将结果映射到对象,因为它给了我很大的灵活性。这是个人偏好,但没有正确/错误的答案。

答案 2 :(得分:1)

模型视图控制器是一个框架,可帮助提供者明确区分应用程序层之间的关注点。模型可以是您真正想要的任何形式。 ORM并不总是合适的,如果你有其他DAL,那么使用它。使用存储库模式进行直接数据访问非常有效,这将有助于您隐藏用于访问数据库的逻辑,并允许您稍后在轨道上更改它。