Вопрос о наследовании Linq to SQL - PullRequest
0 голосов
/ 14 февраля 2009

Полагаю, я не совсем уверен, как должно работать наследование Linq.

У меня есть сущность «Пользователь», и я хочу иметь две дополнительные сущности, называемые «Создатель» и «Назначенный», которые наследуются от сущности «Пользователь» (в основном они должны иметь те же точные свойства, что и сущность Пользователь). I не нужно никаких дополнительных свойств. Я могу сделать это просто отлично в конструкторе.

Проблема в том, что когда я пытаюсь связать унаследованные сущности с другой сущностью - у меня нет доступа к каким-либо свойствам базовой сущности. Разве я не должен иметь доступ к тем, кто привязан к другим объектам? Мне кажется, что я должен.

1 Ответ

0 голосов
/ 14 февраля 2009

Для меня это больше похоже на отношения, чем на наследство. То есть все объекты являются пользователями, но некоторые пользователи имеют отношение создателя к другим, а некоторые имеют назначенные отношения. Вероятно, самый простой способ смоделировать это состоит в том, чтобы иметь объединяющую таблицу для создателей и другую для уполномоченных. Создайте связи внешнего ключа обратно в пользовательскую таблицу из обоих столбцов в соединительной таблице. Когда вы перетаскиваете все эти таблицы на поверхность конструктора, каждый пользователь получает createBy / созданный и назначенный / назначенный на наборы сущностей. Я предполагаю, что ваши ограничения по БД ограничат его так, что у каждого пользователя будет только один создатель, а пользователю не будет назначено более одного другого использования (или, возможно, нет, в зависимости от ваших правил).

user table
user_id  int identity not null primary key
user_name varchar
....

created_by
created_by_id int identity not null primary key
creator int not null, FK to user.user_id
createe int not null, FK to user.user_id
(with a unique index on creator/createe -- or both could be the PK)
(constraint creator <> createe)

assigned_to
assigned_to_id int identity not null primary key
owner_id int not null, FK to user.user_id
assignee_id  int not null, FK to user.user_id
(with a unique index on assignee_id -- or not)
(constraint owner_id <> assignee_id -- or not)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...