Ниже приведены две частичные таблицы, в которых я пытаюсь определить отношение внешнего ключа.
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
.
Таблица Patient имеет поле PatID
int KEY.
У нас есть требования переименовать наши поля для наших первых моделей сущностей кода; соответствующие поля в этом примере, которые необходимо изменить, изменяются 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]