Trong một ứng dụng mà tôi đã kế thừa có điều này trong một bộ điều khiển cơ sở, mọi bộ điều khiển khác trong ứng dụng kế thừa từ.DbContext và hồ bơi kết nối
public BaseController()
{
db = new MyDbContext();
db.Database.Log = s => Debug.Write(s);
}
public MyDbContext()
: base("name=MyDbContext")
{
// hack to force Visual Studio to deploy the Entityframework.SqlServer package
var instance = SqlProviderServices.Instance;
}
Do cách ứng dụng được thiết kế, ít nhất 2 bối cảnh được tạo theo yêu cầu. (Đó là một ứng dụng MVC và có một cuộc gọi đến HomeController trên mỗi trang cộng với bất kỳ bộ điều khiển khác được gọi cho một trang cụ thể.)
Câu hỏi của tôi là khi nào thì DbContext
tạo kết nối với SQL Server? Là nó ngay lập tức khi bối cảnh được tạo ra, hoặc chỉ khi một truy vấn được thực hiện?
Nếu trước đây, tôi sẽ sử dụng 2 lần số kết nối với máy chủ SQL hơn là cần thiết và nếu đó là sau thì có thể không quá nhiều vấn đề.
Tôi không nghĩ rằng tôi có thể cấu trúc lại điều này trong tương lai gần, chắc chắn không phải không có sự biện minh. Những gì tiềm năng cạm bẫy của thiết kế này tôi nên được nhận thức?
Khuôn khổ thực thể 6.1.3
Phiên bản nào của EF là điều này?Và bạn có thể chỉ cho chúng ta phương thức khởi tạo 'MyDbContext' không? Điều đó sẽ cung cấp các chi tiết cần thiết để trả lời câu hỏi của bạn. – sstan
Đã cập nhật câu hỏi – MrBliz