내 응용 프로그램은 응용 프로그램의 수명 동안 존재하는 하나의 컨텍스트 인스턴스를 사용합니다. Entity Framework를 사용하여 모든 데이터를 읽고 데이터베이스에 씁니다. 객체를 추가 한 후에는 가비지 컬렉터가 객체를 정리하여 메모리에 남아 있지 않게하려고합니다. 나는 다음을 시도했다 :context.detach - 가비지 수집 용
While context.BatchProgresses.Count > 0
context.Detach(context.BatchProgresses.First())
End While
그러나 이것은 무한 루프로 진행된다. Context.Detach()
항목을 Context.BatchProgresses
에서 삭제해야합니까?
싱글 톤 컨텍스트는 정말 나쁜 아이디어 *이며 비참하게 끝날 것입니다. 컨텍스트는 작업 단위입니다. 귀하의 작업 단위는 "내 앱의 전체 수명"이 아닙니다. –
조언을 주셔서 감사합니다. 나는 여러 가지 상황으로 작업을 끝내었다. 처음에는 타이머 루프 내에서 컨텍스트를 만들고 파기하는 성능에 대해 걱정했기 때문에 처음에는이 전략을 사용하지 않았지만 성능에 거의 영향을주지 않는 것으로 나타났습니다. – Terry