Poniżej przedstawiono dwie tabele częściowe, w których próbuję zdefiniować relację klucza obcego.Tworzenie relacji encji z polami o zmienionej nazwie i kluczem podstawowym w tabeli podstawowej
public class Form
{
[Key, Column("FormID")]
public System.Guid FormGUID { get; set; }
[Column("PatGUID")]
public Nullable<System.Guid> PatientGUID { get; set; }
}
public class Patient
{
[Column("PatGUID")]
public System.Guid PatientGUID { get; set; }
[Key, Column("PatID")]
public int PatientID { get; set; }
}
Mam wyeliminować wszystkie ale stosowne informacje, pola, nawigacje, itp dla tego przykładu; mam nadzieję, że nie za dużo.
Mamy formularz tabeli, z FK z PatGUID
do tabeli pacjenta z polem PatGUID
. Tabela pacjenta zawiera pole int KEY PatID
.
Mamy wymagania, aby zmienić nazwy naszych pól dla naszych kodów pierwszych modeli encji; odpowiednie pola w tym przykładzie wymagające zmiany to PatGUID
zmienione na PatientGUID
.
Trudność, którą mam, próbuje zdefiniować ten klucz obcy przy użyciu adnotacji lub płynności.
więc końcowy wynik jest mi potrzebne:
Primary Key Tabela: Pacjent, Pole:
PatGUID
(przemianowany PatientGUID)Foreign Key Tabela: Formularz, Pole:
PatGUID
(zmieniono nazwę PatientGUID)
Nie wygląda to na to, że powinien stanowić duży problem, ale połączenie Patient.PatGUID
nie jest kluczem podstawowym, a zmienione nazwy PatGUID
zmienione na PatientGUID
nie umożliwiły usłudze danych WCF prawidłowego utworzenia odniesienia z odpowiednim odwołaniem, a zatem Prawidłowa select/join od:
SELECT … FROM [dbo].[Form] AS [Extent1]
INNER JOIN [dbo].[Patient] AS [Extent2] ON [Extent1].[PatGUID] = [Extent2].[PatGUID]
Niezupełnie to, co chciałem usłyszeć, ale przynajmniej jednoznaczna odpowiedź na pytanie, dlaczego nie mogłem tego zrobić i wiem, że muszę wymyślić alternatywne rozwiązania. – user2144404