パフォーマンス、メモリ使用量、コーディングの容易さ、正しいことなどの要素の観点から、誰かがデータコンテキストをusingステートメントでラップするかLINQ-SQLでラップしないかについて、賛否両論を提案できますか?
更新:ある特定のアプリケーションで、ブロックを使用する際にDataContextをラップせずに、ライブオブジェクトがGC用にリリースされなかったため、メモリ使用量が増加し続けることを経験しました。以下の例のように、qオブジェクトのリストへの参照を保持し、qのエンティティにアクセスすると、GC用にリリースされていないオブジェクトグラフを作成します。
を使用したDataContext
using (DBDataContext db = new DBDataContext())
{
var q =
from x in db.Tables
where x.Id == someId
select x;
return q.toList();
}
使用せずに存続するDataContext
DBDataContext db = new DBDataContext()
var q =
from x in db.Tables
where x.Id == someId
select x;
return q.toList();
ありがとう。