W aplikacji, którą odziedziczyłem, jest to w kontrolerach podstawowych, z których każdy inny kontroler w aplikacji dziedziczy.DbContext i pule połączeń
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;
}
Ze względu na sposób zaprojektowania aplikacji, na każde żądanie tworzone są co najmniej 2 konteksty. (Jest to aplikacja MVC i jest wywołanie HomeController na każdej stronie oraz wszystkie inne kontrolery są wywoływane dla konkretnej strony.)
Moje pytanie brzmi: kiedy DbContext
tworzy połączenie z SQL Server? Czy jest to natychmiast po utworzeniu kontekstu, czy tylko po wykonaniu zapytania?
Jeśli jest to pierwsze, użyję 2 razy dwa razy więcej połączeń do serwera SQL niż jest to potrzebne, a jeśli jest to drugie, to prawdopodobnie nie jest to zbyt duży problem.
Nie sądzę, że mogę to zmienić w najbliższej przyszłości, na pewno nie bez uzasadnienia. Jakie potencjalne pułapki tego projektu powinienem znać?
Entity Framework 6.1.3
Która wersja EF to jest?Czy możesz pokazać nam konstruktor 'MyDbContext'? To da ci szczegóły potrzebne do udzielenia odpowiedzi na twoje pytanie. – sstan
Zaktualizowano pytanie – MrBliz