2013-01-23 2 views
1

내가 CRUD 작업에 컨트롤러를 추가하려고하고 EF 다음과 같은 오류 받고 있어요 :MVC 4 추가 컨트롤러 - "메타 데이터를 검색 할 수 없습니다 ..."

검색 할 수 없습니다를 LetLord.Models.Tenant의 메타 데이터. 동일한 DbCompiledModel을 사용하여 다른 유형의 데이터베이스에 대한 컨텍스트를 만드는 것은 지원되지 않습니다. 대신 사용중인 각 유형의 서버에 대해 별도의 DbCompiledModel을 만듭니다./읽기와 MVC 컨트롤러 EF를 사용하여 행동과 전망을 쓰기 :

템플릿 :

는 컨트롤러 대화 설정을 추가합니다.

모델 클래스 : 세입자 (LetLord.Models)

데이터 컨텍스트 클래스 : LetLordContext (LetLord.Models)

내가 비슷한 질문/문제를 볼 및 제공하는 솔루션을 시도했다

하지만, I 수 없습니다 작동하도록하십시오.

내 연결 문자열 :

<connectionStrings> 
<add name="LetLordContext" connectionString="Data Source=|DataDirectory|LetLord.Models.LetLordContext.sdf" providerName="System.Data.SqlServerCe.4.0" /> 
    </connectionStrings> 

LetLordContext.cs에서 나는 기본 생성자가 없습니다. 다른 질문에 설명 된대로

    내 공급자 이름을 변경
  • : 내 InitializeSimpleMembershipAttribute.cs 클래스에서 내가 무엇을 시도했다

    WebSecurity.InitializeDatabaseConnection("LetLordContext", "UserProfile", "UserId", "UserName", autoCreateTables: true); 
    

    를 호출합니다.

  • 연결 문자열 이 삭제되었습니다.
  • Entity Framework를 제거하고 다시 설치하십시오.
  • SQL Server CE 4.0이 설치되어 있는지 확인하십시오.
  • 이전 버전의 프로젝트를 이전 버전으로 되돌립니다.

나는 여전히 손실에 처해 있으므로 도움을 주시면 감사하겠습니다.

답변

4

해결 방법을 찾았지만 여전히이 오류의 원인을 발견하지 못했습니다. 루트 Web.config 파일에

나는이 날 비계와보기를 추가하고 한 번에 추가, 나는 다시 원래 사용했던 문자열을 변경하자

<connectionStrings> 
<add name="DefaultConnection" connectionString="Data Source=|DataDirectory|LetLord.Models.LetLordContext.sdf" providerName="System.Data.SqlServerCe.4.0" /> 
</connectionStrings> 

<connectionStrings> 
<add name="LetLordContext" connectionString="Data Source=|DataDirectory|LetLord.Models.LetLordContext.sdf" providerName="System.Data.SqlServerCe.4.0" /> 
</connectionStrings> 

을 변경했습니다. 내가 아는 한 새로운 문자열이 될 것입니다.

+1

이것은 나에게 전혀 의미가 없지만 작동했습니다! – solidau

+0

또한 연결 문자열 이름을 변경 한 후에 다시 빌드해야합니다. – solidau

+0

나는 어떤 종류의 버그라고 생각합니다. 몇 시간 동안 나를 스터브 시켰습니다. – MattSull

0

이 솔루션은 약간 무겁지만 몇 가지 솔루션을 시도한 후에 다시 움직여야했습니다. 다른 이름으로 새 모델을 만들고 클래스 내부를 새 모델에 복사하기로 결정했습니다.그런 다음 "컨트롤러 추가"창에서 새 모델을 선택하고 스캐 폴딩이 완료되었습니다.

그런 다음 이전 모델을 삭제했습니다.

무엇이 고장 났는지는 알 수 없지만 새 모델은 정상적으로 작동합니다.

관련 문제