Entity Framework Inheritance - PullRequest
       5

Entity Framework Inheritance

2 голосов
/ 02 декабря 2010

Меня интересует довольно своеобразная стратегия наследования и то, как она может быть реализована в Entity Framework 4.0.Я немного перечитал, но не уверен, что применимо какое-либо из трех стандартных решений (таблица на тип, таблица на иерархию, таблица на конкретный тип).

Я обобщу свою проблему в более простую.Допустим, у меня есть абстрактная сущность базового класса B и две производные сущности D1 и D2.

Теперь D1 и D2 отображаются на отдельные определяющие запросы, даже если они совместно используют общие свойства из-за их общего базового классаB, эти свойства не извлекаются из одного и того же места в хранилище.

Пока все в порядке, но мне действительно нужно иметь возможность выставить ObjectSet , то есть коллекцию, объединяющую элементы D1 и D2.

Возможно ли это?

Заранее благодарим за любую помощь.

РЕДАКТИРОВАТЬ: Вот некоторые подробности в соответствии с просьбой.

POCO объекта

public abstract class B {
    public int ID { get; set; }
    public DateTime SomeDate { get; set; }
}
public sealed class D1 : B {
    public string SomeInfo { get; set; } 
}
public sealed class D2 : B {
    public decimal SomeNumber { get; set; }
}

Я не могу заставить XML правильно отформатировать, но в основном D1 отображается на определяющий запрос, а D2 тоже.Я не могу отобразить B на что-либо, так как оно варьируется в зависимости от подтипа.

1 Ответ

0 голосов
/ 02 марта 2011

Это было бы немного обманом, но не могли бы вы объединить наборы в базе данных и затем включить их в структуру сущностей?Возможно, вам потребуется создать объект, который имеет все свойства, и если свойство не существует в B (то есть только в D1 или D2), то оно должно быть обнуляемым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...