2010-08-27 18 views
9

Bir şey eksik olabilir, ancak Entity Framework 4 tarafından oluşturulan bir SQL Server 2008 R2 veritabanı, EF tasarımcısı tarafından yapılandırdığım varsayılan değerler eksik.Varlık Framework 4 ve Varsayılan Değerler

Herhangi bir fikrim yanlış ne yapabilirim?

cevap

12

Bunun nedeni, kavramsal modelde ve veritabanı varsayılan değerlerinde ayarlayabileceğiniz varsayılan değerlerin, tamamen ilgisiz olan olmasıdır.
Sütunlarda varsayılan değerlere sahip bir veritabanına sahip olduğunuz, aynı belirteci olan varsayılan bir değerle karşılaşacağınız, varsayılan ayarın, şemada veya varlığın kendisi tarafından alınamayacağını düşünelim. Bu nedenle, bir veritabanı şeması oluşturmak için kullanılacak bir modeldeki bir varlığın bir özelliği için bir varsayılan değer tanımlarsanız, bir varlığın özelliği için tanımladığınız varsayılan değerlerin hiçbirinin olmayacağını bilmeniz önemlidir. veritabanına itti. Ancak, varsayılan EntityObject T4 kod oluşturma şablonunun ve varsayılan POCO Entities şablonunun hem oluşturulan sınıfta hem de varsayılan değerlerini belirleyeceğini belirtmek gerekir.

Bunu doğrulamak tarafından tıkladığınız kez yourModelName.edmx.sql de VS2010 tarafından üretildikten dosyasını yakından bakmak olabilir "Modelden Veritabanı oluşturmak ...". İÇİN
ADD CONSTRAINT DEFAULT "Varsayılan Değer" YourColumnName

+0

özlü Cevabınız için teşekkür ederim: Gördüğünüz gibi, içinde böyle böyle bir şey HAYIR vardır. Mantıklı gelir. – Shaun

+0

Kod geçişlerini daha zor hale getirse de mantıklı. Varolan bir tabloya null olmayan bir alan ekleyin, SQL Server'daki iki şema karşılaştırılmadan oluşturulan geçiş komut dosyası çalışmaz. Tekrar manuel olarak yapılmalıdır. – simbolo