У меня проблемы с отображением наследования в Linq to Sql.Я использую MSDN в качестве ссылки, и в качестве основы это звучит хорошо.Однако приведенный пример представляет собой отображение наследования одной таблицы.Однако я пытаюсь сделать наследование нескольких таблиц, чтобы сэкономить на табличном пространстве.Это возможно?На данный момент у меня есть:
[Table(Name="writing_objs")]
[InheritanceMapping(Code="T",Type=typeof(ObjectTypeA), IsDefault=true)] // Only default because a default is required
[InheritanceMapping(Code="N",Type=typeof(ObjectTypeb))]
public abstract class WritingObject
{
/* ... */
[Column(Name="obj_tp", IsDiscriminator=true)]
[StringLength(1)]
public string ObjectType { get; set; }
}
Затем я определил различные типы объектов следующим образом:
[Table(Name="obj_type_a")]
public class ObjectTypeA: WritingObject
{
/* Object Type A fields */
}
Кажется, проблема в том, что я определяю атрибут таблицы во втором типе, как я получаю следующее исключение:
Подтип наследования 'ObjectTypeA' также объявлен как корневой тип.
Возможно ли хранить эти поля в отдельных таблицахс Linq to Sql или мне придется объединить их все в одну таблицу?Обязательно ли плохо иметь несколько дополнительных полей в одной таблице, если их не слишком много (некоторые типы объектов могут даже совместно использовать некоторые поля)?