Рассмотрим таблицу, определенную как:
public class SkillInteraction
{
// Primary Key
[Key]
public int SkillInteractionId { get; set; }
// record type (offensive, defensive)
public int SkillTypeId { get; set; }
//foreign key to Skill table
public int ParentSkillId { get; set; }
//foreign key to Skill table
[ForeignKey("ParentSkillId")]
public virtual Skill ParentSkill { get; set; }
//foreign key to Skill table
public int SkillId { get; set; }
// list of skills associated with the parent skill
[ForeignKey("SkillId")]
public virtual Skill Skill { get; set; }
public decimal Ratio { get; set; }
}
public class Skill
{
public int SkillId { get; set; }
// record type (offensive, defensive)
public int SkillTypeId { get; set; }
public string SkillName { get; set; }
}
Я совершенно уверен, что мне нужно отобразить эти отношения, используя свободный синтаксис, но не знаю, как это сделать. Если я оставлю это как есть, у меня будет ошибка с внешним ключом, вызывающим циклы.
Introducing FOREIGN KEY constraint 'SkillInteraction_Skill' on table 'SkillInteractions' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
Could not create constraint. See previous errors.
Итак, как мне установить эти отношения в EF 4.2, чтобы SQL-сервер не жаловался?