2017-05-08 5 views
1

데이터베이스를 업데이트하기 위해 코드를 처음으로 마이그레이션 할 때 Entity Framework를 사용하는 프로젝트에서 작업하고 있습니다. 나는이 프로젝트를 다른 컴퓨터에서 시작했는데 아주 잘 진행되었다. 이제 다른 컴퓨터에서 코드를 확인했습니다. 이 컴퓨터에는 데이터베이스가 없으므로 update-database 명령을 nuget에서 실행했습니다. 이전 마이 그 레이션을 적용하고이 시스템에 새 데이터베이스를 작성해야하지만 다음과 같은 오류가 표시됩니다. 로컬 SQL Express 인스턴스가 다음 코드 먼저 해당 인스턴스 만약에 데이터베이스를 만들었습니다 (비주얼 스튜디오 2010 기본적으로 설치)를 사용할 수있는 경우Entity Framework : 코드 첫 번째 마이그레이션을위한 DataSource를 변경할 수 없습니다.

error

나는

을 말한다 this MSDN 기사를 읽고 SQL Express를 사용할 수없는 경우 Code First는 LocalDb (Visual Studio 2012와 함께 기본적으로 설치됨)를 사용하려고 시도합니다.

내가 처음 컴퓨터에서 마이 그 레이션을 사용할 때 데이터 소스로 SQLEXPRESS 인스턴스가있는 데이터베이스를 만들었고 현재 컴퓨터에 마이 그 레이션이 없으므로 데이터베이스를 만들 수 없습니다. 그래서 EntityFramework의 DataSource를 LAPTOP-HD618J49 인 현재의 SQL Server 인스턴스로 변경하려고합니다. 이를 위해 app.config에서이 인스턴스로 하드 코딩 된 연결 문자열을 작성하려고했지만 데이터 컨텍스트 클래스에서 ContextName을 변경했지만 아무런 효과가 없습니다. 제가 누락 된 부분에 대해 설명해주십시오.

+0

[here] (http://www.entityframeworktutorial.net/code-first/database-initialization-in-code-first.aspx)에 설명 된대로 컨텍스트의 생성자에서 연결 문자열 이름을 지정하는 것이 좋습니다. . 그런 다음 해당 연결 문자열을 구성 파일에 추가하십시오. 컨텍스트의 이름을 변경할 필요가 없습니다. –

+0

@SteveGreene 나는 그것을 시도했다. 여전히 같은 오류. –

+0

먼저 VS (또는 SQL Management Studio)에서 SQL Server Object explorer를 사용하여 원하는 데이터베이스에 연결하고 액세스 권한이 있는지 확인합니다 (기본적으로 원격 데이터베이스에 액세스 할 수 없음). 둘째, 오류 메시지가 여전히 '. \ SQLEXPRESS'를 참조합니까? 즉, LAPTOP-HD618J49에 대한 연결 문자열을 사용하고 있지 않음을 나타냅니다. –

답변

0

마침내 문제가 해결되었습니다. 이전에 base("name=ConnectionStringNameHere")을 사용하려고했지만 패키지 관리자 콘솔에서 update-database 명령을 실행했을 때 작동하지 않았습니다. 이상한 이유는 Visual Studio에서 ConnectionStringName을 확인할 app.config를 알 수 없기 때문입니다. 필자는 이미 패키지 관리자 콘솔의 드롭 다운에서 엔티티 프레임 워크를 사용하여 모듈을 선택했지만. 솔루션 탐색기 창에서 엔터티 프레임 워크가있는 모듈을 선택하고 시작 프로젝트로 설정해야했습니다. 이것은 어떻게 든 문제를 해결했으며 업데이트 된 DataSource를 사용하여 모듈의 app.config에서 ConnectionStringName을 선택할 수있었습니다.