2014-09-16 14 views
21

Bir .NET Framework 4.0.0 ile Entity Framework 5.0.0 kullandığımda, çalışma zamanında Tanınmayan öğenin 'sağlayıcıları' istisnası aldım. Aslında .NET 4.0 ile, NuGet ile bir yükleme paketi yaptığımda yüklenen Entity Framework 4.4.0 sürümü. Ben kaşif dosyanın özelliklerini kontrol ettiğinizde ben bu görebilirsiniz: Burada Varlık Framework: Tanınmayan öğenin 'sağlayıcıları' özel durumu

enter image description here

benim yapılandırma dosyası

<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> 

olduğunu hissettiğim Varlık Framework 4.4.0 tanımak mümkün değildir var etiket. Sadece bölümü kaldırabilir miyim? Bölümü kaldırdığımda başka bir özel durum alıyorum: Temel sağlayıcı Open'da başarısız oldu.

+0

, kaldırma işlemini kaldırmayı deneyin, Sürüm = 4.4.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' –

cevap

51

Bu sorunu, sürüm 6'dan sürüm 5.0.0'a indirdikten sonra Nuget'i kullanarak sürüm 5.0.0'a düşürdüm. Sorun şu ki, EF v6 eklenirken ancak sürüm düşürüldükten sonra kaldırılmazsa sağlayıcı yapılandırması eklenir. Yani, sadece basitçe <providers> etiketleri içinde içerik kaldırmak ve tagları ve iyi çalışır:

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

kaldırma işleri benim için. VS2012 yapılandırma dosyasını silerseniz, tekrar buradaki etiketleriyle yeniden oluşturur ve bunları tekrar elimden çıkarmak zorundayım. bu neden merak ediyorum ki? Kendi yorumumu yanıtlamak için – timothy

+0

- App.config dosyasından değil, bin dizinindeki .exe.config kaldırılıyordu. App.config dosyasından kaldır ve her şey yolunda. – timothy

+1

@timothy Bu, programcıların yaptığı üçlü facepalm hatalarından biridir. Ve bunu bugün yaptım. Kafamın nerede olduğunu bilmiyordum. – Apostrofix

0

Sen YourProjectName.dll dan projenizin app.config dosyasından etiketi kaldırmak değil, gerek .Config dosyası, projenizi oluşturduktan sonra otomatik olarak YourProjectName.dll.config dosyasından kaldırır.

Not: Cevap, yukarıdaki yorumun kendisinde bulunur. Cevabı burada birleştirdim.