none
Не удаляется навигационная запись RRS feed

  • Вопрос

  • Здравствуйте. У меня возникла проблема с удалением записи Organization, схема классов такая:

    public class Organization { public Organization () { Users = new HashSet<User>(); Subdivisions = new HashSet<Subdivision>(); } public int Id { get; set; } [Required] [DisplayName("Название")] public string Name { get; set; } [DisplayName("Описание")] public string Describe { get; set; } [DisplayName("Главный Логотип")] public byte[] BigLogo { get; set; } [DisplayName("Первый телефон")] public string Telephone1 { get; set; } [DisplayName("Второй телефон")] public string Telephone2 { get; set; } [DisplayName("Третий телефон")] public string Telephone3 { get; set; } [DisplayName("Адрес")] public string Address { get; set; } [DisplayName("Отображать для всех")] public bool Visible { get; set; } [DisplayName("Список пользователей")] public virtual ICollection<User> Users { get; set; } [Required] public virtual ICollection<Subdivision> Subdivisions { get; set; } } } public class User { [Key] public int UserId { get; set; } public string Email { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public int DayOfBirth { get; set; } public string MonthOfBirth { get; set; } public int YearOfBirth { get; set; } public byte[] Photo { get; set; } public string DateOfRegistration { get; set; } public int? OrganizationId { get; set; } public virtual Organization Organization { get; set; } } public class Subdivision { public Subdivision() { Dishes = new HashSet<Dish>(); } public int Id { get; set; } [DisplayName("Название"), Required] public string Name { get; set; } [DisplayName("Описание"), Required] public string Description { get; set; } [DisplayName("WiFi")] public bool Wifi { get; set; } [DisplayName("Паркинг")] public bool Parking { get; set; } [DisplayName("Детская комната")] public bool ChildRoom { get; set; } [DisplayName("Танцпол")] public bool DanceFlow { get; set; } [DisplayName("Доставка")] public bool Delivery { get; set; } [DisplayName("Живая музыка")] public bool LiveMusic { get; set; } [DisplayName("Кальян")] public bool Hookah { get; set; } [DisplayName("Средний чек")] public int AverageCheck { get; set; } [DisplayName("Зал для курящих")] public bool SmokeRoom { get; set; } public string LocationX { get; set; } public string LocationY { get; set; } public int OrganizationId { get; set; } [ForeignKey("OrganizationId")][Required] public virtual Organization Organization { get; set; } Выдает следующую ошибку

    The DELETE statement conflicted with the REFERENCE constraint "FK_dbo.User_dbo.Organization_Organization_Id1". The conflict occurred in database "EATBASE_c41d63f86b0a4fe38d04e3f54c2c99a4", table "dbo.User", column 'Organization_Id1'.

    Что ему не нравится?


    25 февраля 2014 г. 12:37

Ответы

  • Вы пытаетесь удалить запись, на которую имеется внешний ключ. Т.е. в этом случае нарушается целостность данных в БД, поэтому и ругается. Если ключ обязательный, то придётся и связанную запись удалить, или надо ключ сделать необязательным.

    Сделаем содержимое сообщества лучше, вместе!

    25 февраля 2014 г. 19:06
    Модератор