Ekrem
Kategori:Çalışma Notları
| Tarih:
3/4/2019 6:42:00 PM
Bu yazı 892 defa okundu
Entityframework 4.6.1'e terfi
Entityframework 4.6.1'e terfi konusunda yazı yazayım mı yazmayayım mı diye tereddüte düştüm, lakin benim başıma geldi, başkasının da başına gelirse, bu yolu izlesin diyerek, notumu buraya alayım da, ihtiyacı olan faydalansın.
Arkadaşım, konunun özündeki gelişme şu. entityframework 3,5 ta yıllarca çalıştım. 3-4 yıl kadar. Sonra sunucumu taşıyayım dedim. İşte burada çarşı karıştı.
Sunucundaki problem entityfremawork eski sürümünden kaynaklandığını farkettiysen(Bunu nasıl anlıyorsun? Eğer entityframework 3.5'tan 4.6.1'e terfi etmen gerekiyorsa) aşağıdaki adımları uygula.
Önce nuget ten entityframework 6.0 ı indir. Üst sürümleri de var fakat, benim tercihim bu. Eklendiğinden eminsen web.config dosyanda entityframework 6.0 ile ilgili satırı göreceksin. Hadi bunu da aşağıda belirteyim.
<entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">
Sonrasında mysql veritabanı dosyanda hata almamak veya bağlantıda problem yaşamamak için aşağıdaki kod bloğunu web.config içersine ekliyorsun.
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient"/>
<add name="MySql Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySql" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data"/>
</DbProviderFactories>
</system.data>
Tüm bunları yaptın, iş bitti diyorsun lakin aşağıdaki hatayı alacaksın
ModelE2a.ssdl(2,2) : error 0152: No Entity Framework provider found for the ADO.NET provider with invariant name 'MySql.Data.MySqlClient'. Make sure the provider is registered in the 'entityFramework' section of the application config file. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information.
Bunun da çözümü Entityframework 6.0 için, web.config'e aşağıdaki kod bloğunu ekliyorsun.
<entityFramework>
<!-- hiyerarşiye dikkat et yeter -->
<providers>
<provider invariantName="MySql.Data.MySqlClient"
type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
</providers>
</entityFramework>
İşte bu kadar. Hadi geçmiş olsun.