-3

我有一项使用 ADO.NET 为 MVC 工作的任务。我们可以使用普通的 ADO.NET 来完成这项工作吗?如果可能的话,请提供一些有用的链接。

4

1 回答 1

1

起初,如果不raw使用诸如 DataSet 之类的数据容器,ADO.NET 是不可能的。

原因是从动作方法提供模型,从内部视图查询该模型具有不同的范围。视图在操作方法退出后访问模型。考虑以下代码示例:

public ActionResult SomeAdoNetAccess(int id, string name) 
{
   ...
   using(var command = CreateSampleCommand()) 
   {
      command.Parameters["@Id"].Value = id;
      ..
      using(var reader = command.ExecuteReader())
      {
            return View(reader);
      }
   } 
}

当视图试图访问阅读器时,阅读器已经被释放。所以需要某种容器。

对于其他事情,您可以将命令参数值作为操作参数传递,并使用 ViewState 将其他数据传递给视图,而无需使用类型化模型。这不是问题,但它需要更多的努力而不是常规模型。

于 2012-10-25T13:30:14.443 回答