8

Mam bazę danych zawierającą kilka złożonych kluczy obcych. Na przykład, oto skrypt do generowania klucza obcego:Pierwsza baza danych Entity - Composite Foreign Keys

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

Ja próbuje użyć Entity Framework 5 bazy najpierw wygenerować model z tej bazy danych. Jednak skojarzenia dla złożonych kluczy obcych nie są generowane ze wszystkimi tabelami i innymi prostymi kluczami obcymi.

Jak mogę albo:

  1. ręcznie utworzyć te kompozytowych kluczy obcych w pliku XML za edmx (bolesne)
  2. zostały ramy podmiot poprawnie generować te zagraniczne klucze tak, że muszę mieć mapowania

Dzięki!

+1

W szczególności * jak * generujesz swoje jednostki? Korzystasz z edytora edmx? Czy używasz niestandardowej strategii generowania kodu? – Heather

+0

Czy "OrganizationID" i "Code" złożony klucz podstawowy z tabeli 'ShiftLeaveCodes'? Jeśli nie (na przykład, jeśli jest to tylko unikalny indeks), to nie zadziała. –

+0

Encje są generowane z bazy danych za pomocą "Zaktualizuj model z bazy danych" w menu kontekstowym. –

Odpowiedz

1

Baza danych struktury Entity Po pierwsze nie zachowuje się przy użyciu unikatowych kluczy, zgodnie z potrzebami. Jeśli chcesz, aby były to właściwości nawigacyjne, powinieneś ustawić je jako klucze obce.

Teraz musisz dokonać wyboru: 1) potrzebujesz tylko NavPrs, 2) Potrzebujesz również tabeli połączeń jako encji.

1) Aby to osiągnąć, po prostu ustaw te klucze obce jako złożony klucz podstawowy.

2) Aby to osiągnąć, pozostaw je jako klucze obce i zadeklaruj kolumnę identyfikatora tożsamości dla tabeli skrzyżowań i ustaw ją jako klucz podstawowy.

To powinno zadziałać.