我正在使用Linq to Entities,最近发现很多人推荐像这样在using语句中包装datacontext:
Using(DataContext db = new DataContext) {
var xx = db.customers;
}
这很有道理。然而,我不确定如何将这个实践应用到我的模型中。 例如:我有一个名为“customer”的接口,它是由一个存储库实现的,像这样:
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
//*******************************************
}
}
我的问题是:“使用”这种方法的推荐真的那么好吗?请考虑到这一变化将是一个重大的改变,我有大约25个接口/库组合,每个都有大约20-25个方法,更不用说完成后需要重新测试所有内容了。还有其他方法吗?
谢谢!
Edgar.
using
的作用,那么决定是否值得使用就取决于你了。 - gdoron