Как использовать навигационные свойства в качестве основных ключей в Entity Framework (.Net 4.0)? - PullRequest
3 голосов
/ 23 июня 2009

Я пробую подход Model First , представленный в Entity Framework с VS2010 / .Net 4.0, и сейчас я не знаю, как это сделать. Я начинаю со следующих сущностей:

Contact                           Event
*******                           *****
Id (Int32, not null, pk)          Id (Int32, not null, pk)
Name (Name, not null)             Name (String, not null)
Address (Address, not null)       Duration (Duration, not null)
Email (String)
Phone (String)

, где Name, Address и Duration - это сложные типы, которые я определил.

Теперь я хочу добавить RSVP Entity, который работает как отображение «многие ко многим» от Contacts до Events, но также содержит некоторую дополнительную информацию в сложном типе, который я назвал Payment. Таблица, вероятно, будет выглядеть примерно так:

RSVP
****
ContactId (int, not null, pk)
EventId (int, not null, pk)
Payment_Date (datetime, not null)
Payment_Amount (double, not null)

Когда я пытаюсь построить эту сущность в конструкторе моделей, я хочу добавить поля ContactId и EventId, добавив отношения многие-ко-многим в соответствующие таблицы, но когда я это делаю, я не могу выбрать два поля, которые будут первичным ключом таблицы (или ключом сущности).

Как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 12 января 2010

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

0 голосов
/ 22 ноября 2009

На самом деле, я думаю, что вам не нужно создавать отдельную сущность для RSVP, просто отношения «многие ко многим» между двумя сущностями.

Дайте мне знать, если это поможет ..

...