2011-06-01 21 views
6

türetmek yok ilk yaklaşımını kullanıyorum.Varlık Framework benim tür projemde türetilmiş türlerini

Modelin bir parçası olan Task adlı bir tür var. Ayrıca Task'dan ve BackgroundTask'dan türetilen UserAccountTask'dan türetilen BackgroundTask da var.

Yalnızca Task türünde bir nesne oluşturmaya çalıştığımda ve bunu görev havuzuma eklediğimde, değişiklikleri db'ye kaydetmeye çalıştığımda hemen DbUpdateException alırım. Onun iç istisna durumları:....

"Geçersiz sütun adı 'UserAccount_UserId' \ r \ nYanlış sütun adı 'UserAccount_Lastname' \ r \ nYanlış sütun adı 'UserAccount_Firstname' \ r \ nYanlış sütun adı 'UserAccount_Fullname' \ r \ nYanlış sütun adı 'UserAccount_Password'. \ r \ nYanlış sütun adı 'UserAccount_Title [...]"

UserAccount başka tür ve UserAccountTask bir özelliğidir (UserId, Lastname vb vardır UserAccount özellikleri) .

Ben sorunun benim açıklama çok berbat değil umut: -/ Sadece EF IMHO o zaman önemli değil çünkü Task başka türü için taban sınıfı olduğu gerçeğini göz ardı etmek istiyorum. peşin

sayesinde Kevin

cevap

15

Türetilmiş bağlamda bu kullanmayı deneyin:

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    base.OnModelCreating(modelBuilder); 
    modelBuilder.Ignore<UserAccountTask>(); 
    modelBuilder.Ignore<BackgroundTask>(); 
} 
+1

Yani basit :-) Teşekkür !! – bitfrickler

+0

Çok yardımcı! Teşekkürler! –