Tôi đang sử dụng LINQ to Entities và gần đây, tôi thấy rằng rất nhiều folks giới thiệu gói các DataContext trong một tuyên bố sử dụng như thế này:sử dụng đúng cách "Sử dụng" tuyên bố cho DataContext
Using(DataContext db = new DataContext) {
var xx = db.customers;
}
này có ý nghĩa . Tuy nhiên, tôi không chắc chắn cách kết hợp thực tiễn này trong mô hình của mình. Ví dụ: Tôi có một giao diện (chúng ta hãy gọi nó là khách hàng) và nó được thực hiện bởi một kho lưu trữ như thế này:
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.
//*******************************************
}
}
Sau đó, để tận dụng lợi thế của việc sử dụng, tôi sẽ cần phải thay đổi phương pháp để trông giống như này:
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
//*******************************************
}
}
Câu hỏi của tôi là: đề xuất sử dụng "Sử dụng" thực sự tốt? Hãy xem xét rằng thay đổi này sẽ là một thay đổi lớn, tôi có khoảng 25 giao diện/kho lưu trữ combo, và mỗi có khoảng 20-25 phương pháp, chưa kể đến việc cần phải kiểm tra lại mọi thứ sau khi kết thúc. Có cách nào khác không?
Cảm ơn!
Edgar.
Điều đó tùy thuộc vào cách bạn đang sử dụng lớp học đó. – SLaks
Nếu bạn biết những gì 'sử dụng' là làm nó tùy thuộc vào bạn để quyết định xem nó có xứng đáng với bạn hay không. – gdoron