MVC&基本数据访问

时间:2013-04-30 05:53:25

标签: asp.net asp.net-mvc

我有使用webForms的经验,现在我开始学习MVC,哦,男孩......一切看起来都那么不同。由于我的背景是webForms,我只想确保如果正确地执行此操作。我从MS SQL Server&中提取数据(查询,存储过程等)。目标是在视图中表示它们。这就是我所做的事情。

这是我的模特

Class Product ' Just a Template
  private _title 
  private _price
  ' property implementation etc
End Class

 Class ProductModel ' Returns Actual Data

    Function getProducts as list(of product)
      ' use SqlDataReader to Execute the Stored Procedure
      ' Populate a list(of product)
      ' list.add(new product(title,price))
      ' Return the List
     end function


   Function getTopProducts() as list(of products)

   End Function
End Class

现在这是我的 ProductsController index()ActionMethod。

 Dim p as new ProductModel
 return view(p)

然后在我的视图中(对于 ProductModel 类强类型),我在 Model.getProducts Model.getTopProducts 并在屏幕上显示数据。

现在几乎没有问题......首先,我的方法是否合理?它是用MVC设置模型的标准方法吗?如果没有,请纠正我。

其次,我在网上看到的所有例子,我都看到人们使用LINQ,EF等....但是在我的环境中,性能非常重要,我几乎总是使用存储过程返回数据,所以可以使用纯ADO.NET或使用LINQ / EF可以在某种程度上帮助我吗?

2 个答案:

答案 0 :(得分:1)

  

......我的方法合理吗?它是一种标准的设置方式   MVC的型号?如果没有,请纠正我。

是的,最佳做法是使用视图模型,而不是直接在视图上使用您的实体。

  

使用纯ADO.NET或使用LINQ / EF可以帮助我解决一些问题   方式是什么?

如果你觉得做了ORM提供的所有脏工作,那么使用纯ADO.NET是完全可以的。

答案 1 :(得分:1)

当您了解MVC时,您接近的是最常显示的方法。但是,如果您想对命名约定有点挑剔,那么您的ProductModel将被称为ProductViewModel。此ViewModel允许您将更多信息传递给View,而不是Product类(这是您的模型类)中可用的信息。但这是微不足道的,尽管你应该习惯使用View with ViewModels。

关于第二个问题,您可以使用任何您想要的数据访问技术。实体框架由Microsoft推广为其用于操纵数据库中的信息的技术之一。但是,如果您希望可以将ADO.NET与存储过程一起使用,或者可以将RavenDB与其自己的客户端接口一起使用。这完全取决于你。