2014-09-16 4 views
21

.NET 4.0에서 Entity Framework 5.0.0을 사용하면 런타임에 예외 'providers'이 인식되지 않습니다. 실제로 .NET 4.0에서는 NuGet을 사용하여 설치 패키지를 수행 할 때로드되는 Entity Framework 버전 4.4.0입니다. 내가 탐색기에서 파일의 속성을 확인하면 나는이를 볼 수 있습니다 여기에 엔터티 프레임 워크 : 인식 할 수없는 요소 '공급자'예외가 발생했습니다.

enter image description here

내 config 파일

<configSections> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --></configSections> 
    <connectionStrings> 
    <add name="xxx" connectionString="metadata=res://*/StreetMusicModel.csdl|res://*/StreetMusicModel.ssdl|res://*/StreetMusicModel.msl;   provider=MySql.Data.MySqlClient;provider connection string='   server=xxx.net;   user id=xxx;   password=xxx;   database=xxx'" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="v12.0" /> 
     </parameters> 
    </defaultConnectionFactory> 
    <providers> 
     <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity" /> 
    </providers> 
    </entityFramework> 

이다 I 느낌 엔티티 프레임 워크 4.4.0 인식 할 수없는이 태그. 섹션을 제거하거나 이름을 바꿀 수 있습니까? 섹션을 제거하면 또 다른 예외가 발생합니다. 기본 공급자가 열기에 실패했습니다.

+0

나를 제거하는', Version = 4.4.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' –

답변

51

Nuget을 사용하여 버전 6에서 버전 5.0.0으로 EF를 다운 그레이드 한 후에이 문제점이있었습니다. 나는 EF v6을 추가 할 때 공급자 구성이 추가되지만 다운 그레이드 후에는 제거되지 않는다고 생각합니다. 그래서, 당신은 단순히 <providers> 태그 내에서 콘텐츠를 제거 할 수 있으며 태그 자체를하고 그것을 잘 작동합니다

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
    <parameters> 
     <parameter value="v12.0" /> 
    </parameters> 
    </defaultConnectionFactory> 
</entityFramework> 
+0

제거를 시도하십시오. 구성 파일 VS2012를 삭제하면 문제가있는 태그가 다시 생성되어 수동으로 다시 제거해야합니다. 왜 내가 궁금해하니? – timothy

+0

내 자신의 의견에 답하기 - 나는 App.config 파일이 아니라 bin 디렉토리의 .exe.config에서 제거하고있었습니다. App.config 파일에서 제거하면 모두 정상입니다. – timothy

+1

@timothy 프로그래머가하는 트리플 페이스 페이스 오류 중 하나입니다. 그리고 나는 방금 그것을했다. .. 나의 머리가 있었던 곳을 알지 않는다. – Apostrofix

0

당신은 YourProjectName.dll에서 프로젝트의 app.config 파일에서 태그를 제거하지 필요 .config 파일은 프로젝트를 빌드 한 후 자동으로 YourProjectName.dll.config에서 제거합니다.

참고 : 답변은 위의 설명 자체에서 찾을 수 있습니다. 나는 그 답을 여기에 결합했다.