私は Linq to Entities を使用していますが、最近、多くの人が次のような using ステートメントで datacontext をラップすることを推奨していることに気付きました。
Using(DataContext db = new DataContext) {
var xx = db.customers;
}
意味あり。ただし、このプラクティスをモデルに組み込む方法がわかりません。例:私はインターフェース(顧客と呼びましょう)を持っており、次のようなリポジトリによって実装されています:
namespace Models
{
public class rCustomer : iCustomer
{
readonly DataContext db = new DataContext();
public customer getCustomer(Guid id)
{
return db.customers.SingleOrDefault(por => por.id == id);
}
public iQueryable<customer> getTopCustomers()
{
return db.customers.Take(10);
}
//*******************************************
//more methods using db, including add, update, delete, etc.
//*******************************************
}
}
次に、使用を利用するには、メソッドを次のように変更する必要があります。
namespace Models
{
public class rCustomer : iCustomer
{
public customer getCustomer(Guid id)
{
using(DataContext db = new DataContext()) {
return db.customers.SingleOrDefault(por => por.id == id);
}
}
public iQueryable<customer> getTopCustomers()
{
using(DataContext db = new DataContext()) {
return db.customers.Take(10);
}
}
//*******************************************
//more methods using db
//*******************************************
}
}
私の質問は、「Using」を使用することの推奨は本当に良いですか? この変更は大きなものになることを考慮してください。約 25 のインターフェイス/リポジトリ コンボがあり、それぞれに約 20 ~ 25 のメソッドがあり、完了後にすべてを再テストする必要があることは言うまでもありません。他の方法はありますか?
ありがとう!
エドガー。