배경 :스레드 안전한 SQL CE 데이터베이스에 액세스하는 방법
내 Windows 전화 프로젝트. 로컬 SQL CE 데이터베이스를 사용하여 날짜를 저장합니다. 프로그래밍 방식으로 LINQ to SQL을 사용하여 데이터베이스 테이블을 만듭니다.
이 데이터베이스는 여러 스레드의 다양한 datacontext 인스턴스를 통해 액세스됩니다.
나는 모든 데이터를 삭제하고 로그 아웃하는 내 응용 프로그램의 사용자에게 옵션을 제공합니다 :
는 여기에 문제가 있습니다. 사용자가 이것을 선택하면 datacontext의 DeleteDatabase 메서드를 사용하여 데이터베이스를 삭제합니다. 그러나 나는 항상 데이터베이스가 다른 프로세스에 의해 사용되고 있다는 오류 메시지를받습니다. 따라서 삭제할 수 없습니다.
올바른 방향으로 움직이면 내 하루가됩니다.
DB 삭제를 호출하면 연결이 아직 남아 있습니까? DB에 액세스 할 수있는 프로세스가 가장 좋아합니다. –
그럼 내가 열 수있는 모든 연결을 닫았습니다. 데이터베이스를 사용하는 프로세스를 가져 와서 죽일 수있는 방법이 있습니까? – andy
DataContext의 모든 인스턴스를 문장 및/또는 Dispose를 사용하여 래핑합니까? – ErikEJ