Le seguenti sono due tabelle parziali in cui sto tentando di definire una relazione di chiave esterna.Creazione di una relazione di entità con campi rinominati e chiave non primaria nella tabella primaria
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; }
}
ho eliminato tutte, ma le pertinenti informazioni, i campi, navigazioni, ecc per questo esempio; speriamo non troppo.
Abbiamo una tabella Form, con un FK di PatGUID
in una tabella paziente con campo PatGUID
. La tabella Paziente ha un campo KEY int. PatID
.
Abbiamo i requisiti per rinominare i nostri campi per i nostri modelli di codice prima entità; i campi rilevanti in questo esempio che devono essere modificati è PatGUID
modificato in PatientGUID
.
La difficoltà che sto provando è quella di definire questa chiave esterna utilizzando annotazioni o fluente.
Così il risultato finale quello che serve è:
Chiave primaria Tabella: Paziente, Campo:
PatGUID
(rinominato PatientGUID)Esteri Tabella chiave: Modulo, Campo:
PatGUID
(rinominato PatientGUID)
Questo non sembra dovrebbe rappresentare un grosso problema ma con la combinazione di Patient.PatGUID
non essendo la chiave primaria ei campi PatGUID
che sono stati rinominati in PatientGUID
non hanno abilitato il servizio dati WCF per creare correttamente un riferimento con un riferimento appropriato quindi corretta selezione/join di:
SELECT … FROM [dbo].[Form] AS [Extent1]
INNER JOIN [dbo].[Patient] AS [Extent2] ON [Extent1].[PatGUID] = [Extent2].[PatGUID]
Non esattamente quello che volevo sentire, ma almeno una risposta definitiva sul motivo per cui non sono riuscito a farlo funzionare e sapendo che ho bisogno di trovare soluzioni alternative. – user2144404