Простое отношение один-ко-многим (ассоциация) терпит неудачу в конструкторе EF - PullRequest
0 голосов
/ 27 декабря 2010

Я попытался установить простое отношение один ко многим в конструкторе Entity Frameworks.

Таблицы: Категория (1) и Транзакция (N). Вот что я сделал:

Add "association"

 End1 = Category, multiplicity 1, navigation property=Transaction
 End2 = Transaction, multiplicity Many, navigation property = Category

Создание этого дало мнеошибка "Не указано отображение".Хорошо, имеет смысл.Поэтому я добавил это сопоставление:

 Category
   Category.CategoryID = Transaction.CategoryID

Но дизайнер сопоставлений также автоматически добавляет сопоставление для таблицы транзакций, которую я не могу понять, как удалить или настроить:

 Transaction
    Transaction.TransactionID = ???

Оставить его пустым кажется наиболее правильным, но это дает мне: Ошибка 3024 «Необходимо указать сопоставление для всех ключевых свойств (TransactionID)»

И попытаться установить его в поддельное свойство int, просто надеясь, что это ошибка компилятора.Но это дает мне ошибки 3002 и 3003.

Я не понимаю, что делать.Разве ассоциации не предназначены для использования таким образом?

1 Ответ

0 голосов
/ 27 декабря 2010

Я предлагаю создать (или импортировать из базы данных) объект для Catagory и объект для Transaction. Добавьте скалярные свойства к каждому по мере необходимости. Затем щелкните правой кнопкой мыши свою сущность, выберите «Сопоставление таблицы» и сопоставьте свойства вашей сущности с полями таблицы. Например, для сущности Category сопоставьте поле CategoryID со свойством CategoryID. Сделайте то же самое для другой сущности. Затем создайте ассоциацию.

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

...