Entity Framework Code Сначала можно создать БД для следующих POCO.
public class Item {
public int Id { get; set; }
public string Name { get; set; }
}
public class ItemPair {
public int Id { get; set; }
public virtual Item FirstItem { get; set; }
public virtual Item SecondItem { get; set; }
}
Я хотел бы установить связь с первым и вторым элементами через поля ИД, а не весь класс "Предмет". Итак:
public class ItemPair {
public int Id { get; set; }
public virtual Item FirstItem { get; set; }
public int FirstItem_Id { get; set; }
public virtual Item SecondItem { get; set; }
public int SecondItem_Id { get; set; }
}
также работает. Изменить. На самом деле это не работает. Просто генерирует дополнительные столбцы FirstItem_Id1 и SecontItem_Id2.
Но просто изменив свойства внешнего ключа на FirstItemId, SecondItemId (без подчеркивания):
public class ItemPair {
public int Id { get; set; }
public virtual Item FirstItem { get; set; }
public int FirstItemId { get; set; }
public virtual Item SecondItem { get; set; }
public int SecondItemId { get; set; }
}
приводит к следующему исключению.
{"Introducing FOREIGN KEY constraint 'ItemPair_SecondItem' on table 'ItemPair' may cause
cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION,
or modify other FOREIGN KEY constraints.\r\nCould not create constraint.
See previous errors."}
Почему? И что я могу сделать, чтобы избежать этого исключения.