0

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

这是我的模型

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.getProductsModel.getTopProducts上使用 For each并在屏幕上显示数据。

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

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

4

2 回答 2

1

...我的方法合理吗?它是使用 MVC 设置模型的标准方法吗?如果没有,请纠正我。

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

使用纯 ADO.NET 或使用 LINQ/EF 是否可以以某种方式帮助我?

如果您觉得完成了 ORM 提供的所有脏工作,那么使用纯 ADO.NET 完全没问题。

于 2013-04-30T06:00:35.033 回答
1

您的方法是您了解 MVC 时最常展示的方法。但是,如果您想对命名约定有点挑剔,那么您ProductModel将被称为ProductViewModel. 此 ViewModel 将允许您向 View 传递比您的 Product 类(即您的模型类)中可用的更多信息。但这无关紧要,尽管您应该习惯于将 View 与 ViewModel 一起使用。

至于您的第二个问题,您可以使用任何您想要的数据访问技术。Entity Framework 被 Microsoft 推广为用于处理数据库中信息的技术之一。但是,如果您愿意,可以将 ADO.NET 与存储过程一起使用,或者您可以将 RavenDB 与它自己的客户端接口一起使用。这真的取决于你。

于 2013-04-30T06:07:17.127 回答