8

У меня есть база данных, которая содержит пару составных внешних ключей. Например, вот скрипт генерации внешнего ключа:Entity Framework Database First - составные внешние ключи

ALTER TABLE [dbo].[WorkingRosters] WITH NOCHECK ADD CONSTRAINT 
[FK_WorkingRoster_ShiftLeaveCode] FOREIGN KEY([OrganizationID], [ShiftLeaveCode]) 
REFERENCES [dbo].[ShiftLeaveCodes] ([OrganizationID], [Code]) 
GO 

Я пытаюсь использовать Entity Framework 5 Database-первых, чтобы создать модель из этой базы данных. Однако ассоциации для составных внешних ключей не генерируются со всеми таблицами и простыми внешними ключами.

Как я могу либо:

  1. вручную создать эти составные внешние ключи в XML за EDMX (болезненного)
  2. имеют рамки предприятия правильно генерировать эти внешние ключей, так что у меня есть отображения

Спасибо!

+1

В частности * как * вы генерируете свои сущности? С помощью редактора edmx? Используете ли вы собственную стратегию генерации кода? – Heather

+0

Является ли составной первичный ключ 'OrganizationID' и' Code' для вас 'ShiftLeaveCodes'? Если нет (например, если это только уникальный индекс), это не сработает. –

+0

Объекты создаются из базы данных, используя «Обновить модель из базы данных» в контекстном меню. –

ответ

1

База данных Entity Framework First не ведет себя с уникальными ключами по мере необходимости. Если вы хотите, чтобы они были навигационными свойствами, вы должны установить их как внешние ключи.

Теперь у вас есть выбор: 1) вам просто нужны NavPrs, 2) Вам также нужна таблица соединений как сущность.

1) Для этого просто установите эти внешние ключи как составной первичный ключ.

2) Чтобы достичь этого, оставьте их в качестве внешних ключей и объявите столбец идентификатора идентификатора для вашей таблицы соединений и установите его как первичный ключ.

Это должно сработать для вас

Смежные вопросы