Я реализовал двунаправленное отношение 1:1 на основе этого ответа:
Primary /Foreign Key в Entity Framework
Я определяю двунаправленное отношение таким образом:
public class Student
{
public virtual int StudentId { get; set; }
public virtual Anamnesis Anamnesis { get; set; }
. . .
}
public class Anamnesis
{
[Key, ForeignKey("Student")]
public int AnamnesisId { get; set; }
public virtual Student Student { get; set; }
. . .
}
где, Student - главная сущность, а Anamnesis - сущность, которая разделяет PK.
Теперь я хотел бы, чтобы созданное отношение имело правило удаления = CASCADE. На самом деле, создаваемое отношение имеет Delete Rule = NO ACTION, как видно на следующем рисунке:
Если я вручную удалю это отношение в окне Table Properties и добавлю другое отношение с Delete Rule = CASCADE, код работает так, как я ожидаю, позволяя мне удалить Student и его общий Anamnesis, имеющий тот же ID.
Итак, вот мой вопрос:
Есть ли способ использовать Data Annotation (не Fluent API) в моем классе, чтобы я получил отношение с правилом удаления CASCADE? Я бы предпочел использовать Data Annotation, но если это невозможно, я был бы счастлив получить какой-нибудь код Fluent API, который заставит это работать.
ПРИМЕЧАНИЕ
Я попробовал код Fluent API, который показан в этом сообщении. Он не работает в моем случае, когда у меня есть двунаправленные свойства.