2010-11-10 18 views
12

Mam tabelę tblEvent i inną tabelę tblContact. W polu tblEvent istnieje pole ContactID, które jest połączone przez klucz obcy z ContactID w tblContact. Potrójnie sprawdziłem; klucz obcy znajduje się w bazie danych.EF nie generuje skojarzenia klucza obcego z klucza obcego w tabeli

Model Entity Framework NIE generuje właściwości nawigacji i obcego skojarzenia kluczy, tak jak ma to miejsce w przypadku innych kluczy obcych.

Co może być innego w tym obcym kluczu, że EF nie generuje dla niego właściwości nawigacji?

Dzięki!

+0

Czy ContactID kompiluje się z klucza unikalnego lub klucza podstawowego? Czy możemy zobaczyć SQL –

+0

, że SQL nie ma tblEvent, tylko FK do tblLanguage. Z którym FK masz problem? tblEvent lub tblLanguage. Musimy zobaczyć SQL dla tblContact AND tblEvent. – RPM1984

Odpowiedz

0

jeśli używasz 3.5sp1, może to być problem.

Ten artykuł dotyczy niektórych zmian i jeśli nic więcej, zawsze możesz ręcznie dodać skojarzenie fk w projektancie encji, jak opisano w artykule.

http://blogs.msdn.com/b/efdesign/archive/2009/03/16/foreign-keys-in-the-entity-framework.aspx

+0

To jest .NET 4.0. Co jest szalone, to rozpoznaje INNE klucze zagraniczne - po prostu nie ten jeden i dwa inne. Pozostałe zagraniczne klucze, które rozpoznaje. – rsteckly

11

znalazłem rozwiązanie tutaj:

Why doesn't EF 4 generate association for FK relation to column with unique index?

Powodem nie był uznając Jest tak dlatego, że tabela miała niepowtarzalną nieklastrowanym indeks na polu klucza obcego.

Wygląda na to, że unikalny indeks nieklastrowy dopuszcza wartość pustą, której nie można odwzorować.

+3

Jakie jest zatem rozwiązanie? Używam identyfikatora jako klucza podstawowego i identyfikatora GUID do odwoływania się do innej tabeli. Nie chciałbym używać identyfikatora GUID jako klucza podstawowego. Wiem, że mogę po prostu użyć innego atrybutu jako indeksu klastrowego, ale wydaje się po prostu nie tak. – NSAddict

Powiązane problemy