sql server - 파일 - EF5:'{0}'데이터베이스를 '{1}'데이터베이스로 연결할 수 없습니다.




sqlserver error 40 (8)

here 설명 된대로 정확한 문제가 발생합니다 ( "삭제 된 MDF 파일에 연결할 수 없음"섹션 참조). 문제의 해결 방법은 알려지지 않았습니다 ...

즉, 문제는 .mdf 파일을 삭제 한 후 EF 5.0을 사용하여 DB에 액세스하려고하면 다음 예외가 throw된다는 것입니다.

DataException -> EntityException -> SqlException :
'{0}'데이터베이스를 '{1}'데이터베이스로 연결할 수 없습니다.

DB 파일을 삭제했는데 응용 프로그램을 실행할 때 이니셜 라이저를 사용할 때까지 불쾌한 오류 메시지가 표시됩니다. 이 문제를 해결할 방법이 있습니까?


DB 파일을 삭제하면 여전히 SqlLocalDB에 등록 된 상태로 유지됩니다. 때로는 DB를 삭제하도록 수정합니다. 명령 줄에서이 작업을 수행 할 수 있습니다.

  1. 시작 / 프로그램 메뉴에서 "VisualStudio 용 개발자 명령 Propmpt"를 엽니 다.
  2. 다음 명령을 실행하십시오.

    sqllocaldb.exe stop v11.0

    sqllocaldb.exe delete v11.0


SQL 2014의 경우 CodingWithSpike가 선택한 대답과이 주석을 따르십시오.

참고로, v11.0은 SQL LocalDB 2012에만 해당됩니다. LocalDB 2014를 사용하는 경우 MS는 대신 MSSqlLocalDb 로 이름을 바꿉니다 . - CodingWithSpike - 29:14, 19:20


가장 쉬운 방법은 연결 문자열에서 DB의 이름을 변경하는 것입니다. Rowan Millers 블로그 romiller.com/2013/05/17/… 참조하십시오. 향후 버전에서이 문제를 해결할 수 있기를 기대합니다.


나는 JSobell의 솔루션을 먼저 시도했지만 거기에 나열된 데이터베이스를 보지 못했습니다. VS Developer 명령 프롬프트에서 CodingWithSpike의 명령을 실행했지만 그 중 하나가 작동하지 않았습니다. 마지막으로 패키지 관리자 콘솔에서 CodingWithSpike의 동일한 명령을 실행했는데 성공했습니다.

    PM> sqllocaldb.exe stop v11.0
    LocalDB instance "v11.0" stopped.

    PM> 
    PM> sqllocaldb.exe delete v11.0
    LocalDB instance "v11.0" deleted.

    PM> sqllocaldb.exe start v11.0
    LocalDB instance "v11.0" started.

나는 똑같은 문제가 있었다. 패키지 관리자 콘솔에서 다음 명령을 실행하여 문제가 해결되었습니다.

sqllocaldb.exe stop MSSqlLocalDb

sqllocaldb.exe delete MSSqlLocalDb

나는 연결 문자열에서 기본 aspnet- {numbers}에서 DataBase 이름을 간단한 이름으로 변경하여 문제를 해결할 수있었습니다.


내가 지금 방금 해결 한 가장 쉽고 쉬운 대답은, 그냥 데이터 원본으로 처음부터 카탈로그에 UR SQL 서버 이름을 사용하여 귀하의 데이터베이스 이름과 거기에 mdf 라인을 제거 이동


아직도 해결책을 찾고있는 사람들을 위해 ...

View / SQL Server Object Explorer로 이동하여 (localdb) \ v11.0 하위 노드에서 데이터베이스를 삭제하십시오!

기본적으로 파일의 위치를 ​​유지하는 로컬 데이터베이스가 있습니다. 데이터베이스 파일을 삭제하려면 수동으로가 아니라이 탐색기 유틸리티에서 제거해야합니다.





localdb