2012-05-10 4 views
1

스캐 폴딩을 사용하여 컨트롤러를 추가하려고 시도하는 중 오류가 발생했습니다. 내 연결 문자열과 관련이있는 것 같습니다.컨트롤러 스캐 폴딩을 추가하는 중 오류가 발생했습니다.

"unable to retrieve metadata for DOTNETMEMBER.Song. Failed to set database initializer type of type DOTNET.DataContextInitializer, DOTNETMEMBER' specified in the application configuration. Entries should be in the form of 'key=DatabaseInitializerForType MyNamespace.MydbContextClass, MyAssembly'. 이니셜 라이저 클래스에는 매개 변수없는 생성자가 있어야합니다. 자세한 내용은 내부 예외를 참조하십시오.

여기

<connectionStrings> 
    <add name="DataContext" 
     connectionString="Data Source=|DataDirectory|RTDOTNETMEMBER.sdf" 
     providerName="System.Data.SqlServerCe.4.0" /> 
    </connectionStrings> 

    <appSettings> 
    <add key="webpages:Version" value="1.0.0.0"/> 
    <add key="ClientValidationEnabled" value="true"/> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/> 
    <!--Used to initialize the database--> 
    <add key="DatabaseInitializerForType DOTNET.DataContext, DOTNETMEMBER" value="DOTNET.DataContextInitializer, DOTNETMEMBER" /> 
    </appSettings> 

때문에 SQL 콤팩트의 그것을인가 내 연결 문자열입니까?

답변

2

이유를 완전히 이해하지 못하기 때문에 이것이 포괄적 인 대답이 아닌 것 같습니다.하지만 같은 문제가 발생했을 때이 해결 방법으로 인해 문제가 생겨 머리를 긁적 거리지 않게되었습니다.

  1. 은의 Web.config에 가서 DatabaseInitializerForType 키 포함하는 행 주석 (바로 가기 : 라인에 커서를 놓고 다음 Ctrl-K와 CTRL-C).
  2. 프로젝트 빌드 (ctrl-shift-B)
  3. 컨트롤러 스 캐 폴딩을 정상적으로 추가하십시오.
  4. Web.config (ctrl-K, Ctrl-U)에서 이니셜 라이저 키의 주석 처리를 제거하십시오.

예, 약간의 임의적 인 멍청한 접근 방식입니다.하지만 다른 사람들이 동일한 문제를 알아내는 데 도움이되도록 여기에 남겨 두겠습니다!

관련 문제