MVC는 컨트롤러 또는 다른 곳에서 인스턴스화하는 데이터베이스 컨텍스트를 자동으로 삭제합니까?MVC3는 현재 데이터베이스 객체의 인스턴스를 자동으로 삭제합니까?
사용하거나 사용해야합니까? 걱정하지 않아도됩니까?
MVC는 컨트롤러 또는 다른 곳에서 인스턴스화하는 데이터베이스 컨텍스트를 자동으로 삭제합니까?MVC3는 현재 데이터베이스 객체의 인스턴스를 자동으로 삭제합니까?
사용하거나 사용해야합니까? 걱정하지 않아도됩니까?
IDisposable
으로 정의 된 개체를 초기화 할 때마다 생성을 using
문으로 묶어야합니다. 이를 준수하고 폐기하는 것이 일반적으로 좋은 규칙입니다.
여기에는 데이터 컨텍스트가 포함됩니다. 데이터 컨텍스트를 사용하는 도중에 제어기가 던져 버리면 열린 연결로 끝날 수 있습니다.
EF 데이터 컨텍스트에 대해 이야기하는 중이라면 대답은 ASP.NET MVC가 자동으로 처리하지 않지만 shouldn't be worried은 스티븐 발터 (Stephen Walther)가 블로그 게시물에 설명하는대로 처분하는 것에 관한 것입니다. 여기에 similar answer이 있습니다.
이 인수는 어떻습니까? "나는 IDisposable 인 것은 무엇이든 명시 적으로 처리해야한다고 주장 할 것이다. 어떤 클래스도 블랙 박스로 취급해야하며 내부 구현에 대한 가정은하지 않아야한다. – devuxer
위험한 조언이라고 생각합니다. 일반적으로 타입이'IDisposable'을 구현하면'Dispose' (또는'using'을 사용)를 호출해야한다고 말하고 싶습니다. 수업의 "공개적으로 보이는 표면"에 대한 의도는 당신이'Dispose'를 호출해야한다는 것입니다. 이것이 왜 적용되지 않는지에 대한 특권있는 정보를 알고있는 것은 (당신이 그것을 디 컴파일했거나 팀의 devs에게 말했기 때문에) 그렇게하지 않는 것은 꽤 불안정한 이유입니다. 예를 들어, 향후 릴리스에서이 동작이 변경된 경우 어떻게해야합니까? IMHO 특별한 이유가없는 한 규칙에 충실하는 것이 더 쉽습니다. _하지 마세요. –