Code First Projede Azure Database Sorunları

By | May 14, 2015

CodeFirst yapısı kullanırken mvc mimarisinde modelde bir değişiklik yaptığınızda dolayısıyla database tarafında da derlendikten sonraki ilk database erişim aşamasında gerekli model değişikliklerini entity framework gerçekleştiriyor.

Bu değişiklikleri gerçekleştirirken database’i silip, yeniden oluşturuyor, Azure üzerinde kullanıyorsanız sonuçlar çok vahim, eski database tanımlamanızı tamamen silip sıfırdan database oluşturduğu için bütün ayarlar değişiyor, standard paket yaratıyor ve collation değiştiği için verileriniz de bozuluyor.

Azure management tool üzerinde seçtiğiniz collation “Turkish_CI_AI” değişerek default olan  “SQL_Latin1_General_CP1_CI_AS” karakter setine geri dönmekte.

Screenshot_4

 

Dolayısıyla kullandığınız küçük ı harfleri yok olarak i olarak gözükmekte, bu da çok çirkin bir görüntü oluşturmaktadır.

Şimdi “bir tane alter database yazarım düzeltirim” diyeceksiniz ama azure’da “alter database” komutu kullanılamıyor.

Aşağıdaki kod bloğu azure kullanmıyorsanız işinizi görür.

Screenshot_5

Bu Durumu düzeltmenin yolu, code-first yapısında database’i silme ve yeniden yaratmayı kapatmak olacaktır. Collation sorununu çözsek bile azure üzerindeki db tanımlamalarımızı her seferinde sıfırdan yapmaktan kurtulmamız gerek.

Aşağıdaki kod bloğunda görülebileceği üzere SetInitializer(null) ile runtime’da database şema kontrolünü kapatmış oluyoruz, development ortamında yaptığımız değişiklikleri azure’a migration ile aktarmamız gerekiyor.

Screenshot_6

Leave a Reply

Your email address will not be published. Required fields are marked *