Как определить общее свойство (свойства) для всех сущностей в структуре сущностей - PullRequest
1 голос
/ 19 мая 2011

Представьте, что у меня есть UserId (на самом деле у нас есть примерно четыре столбца, такие как userId, adddate, moddate и т. Д. Для почти всех таблиц) почти для всех сущностей.

Как я могу сделать такой столбец (столбцы) доступным в отдельной сущности (скажем, родительской сущности) и сделать все остальные сущности (дочерние сущности) наследующими от него?

Ответы [ 2 ]

2 голосов
/ 20 мая 2011

Попробуйте использовать шаблоны T4, как описано здесь или здесь , изменить шаблон , чтобы он содержал базовый класс (унаследованный от EntityObject), имеющий эти свойства,и наследовать каждый класс от этого базового класса.

0 голосов
/ 20 мая 2011

Если вы используете сгенерированные классы сущностей (POCO или EntityObject), вам придется определить базовую абстрактную сущность в вашей модели (EDMX) и получить другие сущности в наследовании TPC - просто не делайте этого, потому что это представит так много других проблем - например, вы получите доступ ко всем сущностям из одного ObjectSet базового типа, PK должен быть уникальным среди всех ваших сущностей и т. д.

Другой способ - использовать пользовательские классы POCO (не сгенерированные) или пользовательский шаблон T4 для создания общего наследования объектов, но все еще используя обычные объекты в конструкторе без наследования. Я думал, что это невозможно, но несколько дней назад я проверил это на простом примере, и это сработало - но я все еще немного подозрительно отношусь к этому подходу.

...