ADO.NET を使用して MVC で作業するタスクがあります。通常の ADO.NET を使用してこれを実行できますか?可能であれば、役立つリンクがいくつかあります。
質問する
115 次
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 に答える