C#, Asp.Net, .Net Core
Entity Framework Db Update Nasil Yapiyorsunuz ? SQL Serverda Tablo Drop Etmeden Yapilamayan Degisikiliklerle Nasil Basa Cikiyorsunuz ?
Entity Framework Db Update Nasil Yapiyorsunuz ? SQL Serverda Tablo Drop Etmeden Yapilamayan Degisikiliklerle Nasil Basa Cikiyorsunuz ?
-
Arkadaslar. 2 sorum olucak.
Birincisi :
Entity framework DBFIrst kullaniyorum. Programinizin 1.0 versiyonunu musteriye yuklediniz diyelim.
Bir muddet sonra 1.1 versiyonuna update edeceksiniz. Veri tabaninda da degisiklikler oldu. Bu degisikilikleri musterinin verileri varken veritabaninda nasil yapiyorsunuz ?
SQL script mi ? Kullanidiginiz arac mi var ? Sizin yonteminiz nedir ?
Ikincisi :
Sql server 2005 te istedigimiz gibi tablolarda degisikilik yapiyorduk. Lakin 2008 ve sonrasi bazi degisiklikleri DROP etmeden yapilmasina izin vermiyor. Mesela yeni bir sutun ekliyebiliyorum ama o sutunu istenen siraya tasiyamiyorum. ( Burada select * yerine select col1,col2,col3 from her zaman kullanin diye okumustum tabi o ayri ). Siz nasil yapiyorsunuz ? Bunlarin birde update'i var.
Tesekkurler
-
2. sorunun cevabı şu olabilir tam anlayamadım soruyu.
SQL Server -> Tools -> Options -> Designers -> Prevent saving changes that require table re-creation
Ticki kaldır.
-
Diathorus bunu yazdı
2. sorunun cevabı şu olabilir tam anlayamadım soruyu.
SQL Server -> Tools -> Options -> Designers -> Prevent saving changes that require table re-creation
Ticki kaldır.
Hocam bu bana bu degisikilikleri yapamamayi saglamaz mi ? Ben mi yanlis anliyorum...
-
Hic kullanmadım ama migration olayı yok mu? Vardır elbet.
-
up olsun
-
Hocam ne kadar veri var tablolarda. Diyelim bi alan ekleyeceksin bu durumda bi SQL script yazarsın ama eğer çok çok fazla verin varsa uzun sürebilir çalışması çünkü yeni bi kolon eklenınce tablo baştan yaratılacak ve veriler baştan eklenecek.
-
krypt bunu yazdı
Hic kullanmadım ama migration olayı yok mu? Vardır elbet.
var.
@dhmm
google entity framework migrations
2.nin cevabı da verilmiş ancak o tarz işleri yapmak için arayüz kullanmak yerine kod yaz hocam.
-
nessaj bunu yazdıkrypt bunu yazdı
Hic kullanmadım ama migration olayı yok mu? Vardır elbet.
var.
@dhmm
google entity framework migrations
2.nin cevabı da verilmiş ancak o tarz işleri yapmak için arayüz kullanmak yerine kod yaz hocam.
Hocam ben SQL Management Studio kullaniyorum. Ve sutunu istedigim yere eklemem izin vermiyor. Yeniden olustur diyor. Onu diyorum nasil asabilirim.
-
Hannibal_King bunu yazdı
Hocam ne kadar veri var tablolarda. Diyelim bi alan ekleyeceksin bu durumda bi SQL script yazarsın ama eğer çok çok fazla verin varsa uzun sürebilir çalışması çünkü yeni bi kolon eklenınce tablo baştan yaratılacak ve veriler baştan eklenecek.
Hocam tabloda cok veri yok lakin olabilir de iste ileride. Bu update olayini nasil yapariz onu arastiriyorum. 1.1 versiyonda tek bir degisiklik vardi. Maalesef elle degisitirdim.
Acaab temp table a atip tabloyu tekrar olustursam ve sonra tekrar insert mi etsem ? bilemedim
-
@Diathorus hocam yukarda yazmıs.
SQL Server -> Tools -> Options -> Designers -> Prevent saving changes that require table re-creation
Ticki kaldır. Bu ticki kaldırman lazım bu şu anlama geliyor;
Diyelim küçük bir tablon var içindede 100 satır veri var. Sen yeni bir sutun eklediğinde yada sutunların sırasını değiştirmek istediğinde sql server bu işlemi gerçekleştirmek için tabloyu drop edip sonra senin istediğin şekilde yeniden yaratıp (re-creation) sonrada o 100 tane veriyi insert yapıyor. Default ayarlarda şöyle bir şey var biz sql server a diyoruzki: Eğer kullanıcı tabloyu drop edip yeniden yaratmanı gerektirecek bir istekte bulunursa bu işlemi gerçekleştirme.
İşte sen Diathorus un dediği tick i kaldırırsan tablo rahatça re-creation olabilecek.Bu ticki kaldırdığını varsaydık.
Diyelim çok fazla satır veri var bu durumda bu tarz değişikleri management studio arayüzünden yapmak yerine SQL kodu yazarsın.Arayüzden yaparsan kitleniyor dedi bi arkadaşım. Diyelim 1 mılyon satır verı var sen bı sutun ekledın o tabloyu yenıden yaratacak o verileri ekleyecek sana oyle verıcek tablonu.Veriler eklenirken bi sıkıntı oluşursa diye sql server onu kendi içinde organize etmiştir.Tutarlıdır diye tahmin ediyorum.
-
Merhaba Hemso, Bunun için farkli yapilar var ben entityframework'u cok kullanmıyorum. Kullandığım zamanda database takibini kendim yapiyorum. Bir tabloda veritabanı versionu tutuyorum. Program da o versionu destekliyorsa calisiyor desteklemiyorsa veritabani guncelleme uygulamasına yönlenip o uygulama alter scriptleri ile veritabaninin güncellemesini yapiyor.