Entity Framework 4.x и супертип слоя - PullRequest
0 голосов
/ 18 февраля 2012

Я хотел бы реализовать паттерн Layer Supertype ((PoEAA) при использовании EF 4.x.

Предположим, у меня есть класс супертипа слоя с именем Entity, от которого наследуются два класса Teacher и Student.

Класс Person определяется следующим образом

class Entity
{
    public int Id {get;set;}
}

И Учитель и Студент, как это

class Teacher : Entity
{
     publix string Name {get;set;}
}

class Student : Entity
{
     public int Age {get;set;}
}

Как я могу настроить EF 4.x так, чтобы в моей базе данных у меня были только две таблицы, соответствующие учителям и ученикам? Я попытался использовать стратегию наследования TPC для сопоставления этой структуры, но она не подходит, она создает три таблицы по одной для каждого конкретного класса.

С NHibernate такие ситуации довольно распространены и хорошо обрабатываются. Я имею в виду, что если я создаю сопоставления только для Person и Student, в базе данных будет только две таблицы, и мне не придется явно реализовывать какую-либо стратегию наследования. 1013 *

Спасибо за все ваши советы

Риана

1 Ответ

0 голосов
/ 18 февраля 2012

Сделать класс Entity абстрактным

public abstract class Entity
{
    public int Id {get;set;}
}

public class Teacher : Entity
{
     publix string Name {get;set;}
}

public class Student : Entity
{
     public int Age {get;set;}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...