2010-12-10 13 views
5

SQL Server 2008 ile Entity Framework kullanan C# uygulamasında bir uygulama oluşturuyoruz. Visual Studio'da tasarımcıyı kullanarak modeli tasarlıyoruz ve bunu otomatik oluşturuyoruz.Entity Framework'ü kullanırken veritabanı geçişlerini yürütme

Biz 1.0 sürümü üzerinde çalışıyoruz. 2.0'ı yayınladığımız zaman, modelde ve altta yatan veritabanı yapısında değişiklikler yapmamız gerekecek. Sanırım "veritabanı geçişleri" ne ihtiyacımız var. Geleneksel olarak, veritabanında 'sürüm' gibi bir şey denilen bir tablo vardı. Yazılımımın yeni bir sürümünü oluşturduğumda, ALTER TABLE ifadelerini içeren veritabanı yükseltme komut dosyaları oluşturdum. Yazılımım sürüm tablosunu kontrol etti ve veritabanını 'yazılım sürümüne' yükseltmek için gereken yükseltme komut dosyalarını çalıştırdı.

Bunu işlemenin daha iyi bir yolu var mı? Tablo tablolarını kendim yazmam gerekmiyorsa ve veritabanı yapısını yükseltmek için kendi yazılımımı yazmak zorunda kalmazsam hoş olurdu.

cevap

0

İlk modelde yaptığım zaman, modelimi yalnızca şema için olan bir veritabanına işaret ettim (bu yüzden uyguladığım yer olan bir myapp veritabanı vardı, ancak EF4 modelim çıktı bir myapp_schema veritabanı). Myapp_schema güncellendiğinde, güncelleme betiklerini oluşturmak ve myapp'ın veritabanı şemasının myapp_schema ile aynı olmasını sağlamak için Db Source Tools'u kullandım.

0

Bu gönderiyi dağıtın. EF4'ün CTP4'ü hakkında, ama ihtiyacınız olan şey bu.

http://blogs.msdn.com/b/efdesign/archive/2010/10/22/code-first-database-evolution-aka-migrations.aspx

Unforunately bu henüz mevcut değildir. CTP5 birkaç gün önce yayınlandı ve bildiğim kadarı henüz dahil değil.

+0

Serin. Ancak çözüm, gelecekte bir zamanlar ilk başta kodla değil, model-ilk yaklaşımla birlikte çalışsaydı daha da havalı olurdu. ;-) – Martin

+0

Katılıyorum ve umarım bu işlevsellik kod ilkiyle sınırlı olmaz, ancak modele ilk olarak genişler. Ve umarım en kısa sürede onu serbest bırakırlar. Bu muhtemelen bir FYI cevabı daha sonra bir çözüm oldu. Umarım birisi böyle herhangi bir şeyi bilir. – gligoran

İlgili konular