Ниже приведены две частичные таблицы, в которых я пытаюсь определить отношение внешнего ключа.Создание отношения сущностей с переименованными полями и непервичным ключом в первичной таблице
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; }
}
я устранил все, но соответствующие информационные, поля, плавания и т.д. для этого примера; надеюсь, не слишком много.
У нас есть таблица форм, с FK от PatGUID
до стола пациента с полем PatGUID
. Таблица пациентов содержит поле ввода PatID
.
У нас есть требования переименовать наши поля для наших первых моделей сущностей кода; соответствующие поля в этом примере нуждаются в изменении: PatGUID
изменяется на PatientGUID
.
Сложность, которую я испытываю, заключается в попытке определить этот внешний ключ, используя либо аннотации, либо свободно.
Таким образом, конечный результат мне нужно:
Первичный ключ Таблица: Пациент, поле:
PatGUID
(переименован PatientGUID)Ключ иностранных Таблица: Форма, поле:
PatGUID
(переименован в PatientGUID)
Это не похоже на то, что это должно представлять большую проблему, но комбинация Patient.PatGUID
не является первичным ключом, а поля PatGUID
, переименованные в PatientGUID
, не позволили службе данных WCF правильно создать ссылку с надлежащей ссылкой, таким образом, правильный выбор/джойн:
SELECT … FROM [dbo].[Form] AS [Extent1]
INNER JOIN [dbo].[Patient] AS [Extent2] ON [Extent1].[PatGUID] = [Extent2].[PatGUID]
Не совсем то, что я хотел услышать, но, по крайней мере, окончательный ответ на вопрос, почему я не мог заставить это работать и зная, что мне нужно придумать альтернативные решения. – user2144404