-3

ADO.NET を使用して MVC で作業するタスクがあります。通常の ADO.NET を使用してこれを実行できますか?可能であれば、役立つリンクがいくつかあります。

4

1 に答える 1

1

最初は、rawDataSetのようなデータ用のある種のコンテナーを使用せずに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 に答える