2009-03-11 9 views
2

Benim linq'imde sql setup için bir diskriminatör alanı kullanmaya çalışıyorum. Ben Inventory_Item adında bir temel sınıfım var, ben de soyut olmak için kurulum yapıyorum ve ondan sonra gelen birçok farklı servis var (örneğin, BaseWash). Şimdi BaseWash dernek için özellikleridirLinq to SQL'de ayrımcılarla ilgili sorun

Base Class Discriminator Value = 1 
Derived Class Discriminator Value = 2 
Discriminator Property = ItemCategoryID 
Inheritance Default = BaseWash 

Bu ince oluşturur ancak çalıştırıldığında burada tasarımcı kodunda istisna almak:

public System.Data.Linq.Table<Inventory_Item> Inventory_Items 
{ 
    get 
    { 
     return this.GetTable<Inventory_Item>(); 
    } 
} 

Özet sınıf 'ICS.Core.Inventory_Item' Bir miras ayrımcısı anahtarı atanmamalıdır.

Neyi yanlış yapıyorum?

cevap

4

Inventory_Item tarihinden bu yana, Inventory_Item nu başlatabileceğiniz bir yöntem yoktur. Yani sadece Base Class Discriminator Value'u temizleyin - asla kullanılamaz. Veya sınıfı soyut olmayan yapın ve 1.

+0

'da bırakın. Sorunumu giderdiğim için teşekkürler. SO için başka bir noktaya puan verin. – Mykroft