2012-02-28 5 views
8

때 나는 사용자 나는 다음과 같은 예외가 얻을 엔티티 프레임 워크 마이그레이션의 추가 마이그레이션 명령을Null 참조

System.NullReferenceException: Object reference not set to an instance of an object. at System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetFileName(Project project, String projectItemName) at System.Data.Entity.Migrations.MigrationsCommands..ctor(Object project, Object startUpProject, String configurationTypeName, String connectionStringName, String connectionString, String connectionProviderName, PSCmdlet cmdlet)

어떤 통찰력을?

+0

전체 명령 줄은 무엇입니까? 기존 파일을 가리 켰습니까? 파일이 실제로 있었습니까? – Oded

+0

좀 더 자세한 내용을 게시 할 수 있습니까? 프로젝트 (초기 파일)의 마이그레이션을 이미 활성화 했습니까? 어떤 변화가 있었습니까? –

+0

명령은 "Add-Migration Migration05"와 같습니다. 마이그레이션이 정상적으로 작동했습니다. 프로젝트를 TFS로 옮겼습니다. 이제는 더 이상 작동하지 않습니다. 나는 EF 4.3 –

답변

27

솔루션에 프로젝트가 여러 개 있고 "잘못된"프로젝트가 시작 프로젝트로 선택된 경우 이전에이 내용을 보았습니다. 예를 들어 Azure가 호스팅 한 MVC3 웹 사이트에서 MVC 프로젝트 대신 Azure 프로젝트를 시작 프로젝트로 사용한다고 다른 사람이보고했습니다. 시작과 함께 MVC 프로젝트로 전환하여 문제가 해결되었습니다.

업데이트 : NuGet에서 사용할 수있는 EF5-beta2에서 수정되었습니다

+2

감사를 사용하고 있습니다 ... mqc 대신에 시작 프로젝트를 설정하는 푸른 하늘 날 위해 일했다. – Emad

+0

다른 프로젝트에서 2 개의 VS2012를 열었을 때 나에게 일어났습니다. 다른 하나를 닫으면 해결되었습니다. 감사. –

+2

Arthurs 솔루션을 확인합니다. 또한 패키지 관리자 콘솔에서 올바른 프로젝트를 선택해야합니다. –

0

올바른 플래그와 인수 만 사용하여 EF 명령을 호출 할 때 패키지 관리자 콘솔에서 대상 프로젝트를 쉽게 지정할 수 있습니다. 예를 들어, 여러 프로젝트가있는 솔루션에서 ProjectFoo라는 프로젝트가 제공됩니다.

  • enable-migrations -projectname projectfoo
  • add-migration "Initial" -projectname projectfoo
  • update-database -projectname projectfoo 등 ...

파이처럼 쉽습니다.