簡単な質問かもしれませんが、答えが見つかりません。dbContextを宣言するWebフォームがあります。ただし、ページがポストバックを実行すると、dbContextが上書きされ、オブジェクトの追跡が失われます。破棄する準備ができるまで、dbContextを変更から保護するにはどうすればよいですか?
質問する
336 次
2 に答える
5
DbContextを使用するための推奨パターンは、HTTP要求ごとに新しいDbContextをインスタンス化し、その特定の要求の期間中そのインスタンスを使用することです。
HTTPリクエスト間でDbContextのインスタンスを保持しようとしないでください。
于 2012-08-02T18:55:07.090 に答える
4
dbContext
リクエスト間で再利用してはいけません!
使用する正しいパターンは、HTTP リクエストごとに新しいオブジェクトを作成することです (ポストバックかどうかに関係なく)。
using (var context = new MyDbContext())
{
...
}
なんで?これは軽量構造である
ためですが、さらに重要なことは、スレッドセーフではないことです。DbContext
ポストバックで何かを更新したい場合は、同じパターンを使用します。たとえば、
object productId = //get it from request
using (var context = new MyDbContext())
{
//that's your old product
var product = context.Select(p=>p.Id == product.Id).FirstOrDefault();
}
于 2012-08-02T19:14:40.353 に答える