none
Конфликт инструкции INSERT с ограничением FOREIGN KEY . [Entity Framework] RRS feed

  • Вопрос

  • Здравствуйте. 

    У меня есть БД с двумя таблицами и ADO.NET Entity Framework модель.

    Проблема в том, что когда я пытаюсь добавить нового Visitor`a (выполнить INSERT), я получаю ошибку

    "Конфликт инструкции INSERT с ограничением FOREIGN KEY "FK_CinemaVisitor". Конфликт произошел в базе данных "cinema", таблица "dbo.Cinema_theatre", column 'Id'.
    Выполнение данной инструкции было прервано." 

    Вот код метода:

    private void InsertVisitor()
    
            {
    
                //var cinema = (from c in contex.Cinema_theatre where c.Id !=0 select c).First();
    
    
    
                var visitor = new Visitor
    
                                  {
    
                                      v_Id = int.Parse(textBox6.Text),
    
                                      Age = int.Parse(textBox5.Text),
    
                                      Gender = textBox4.Text,
    
    
    
                                  };
    
    
    
                contex.AddObject("Visitors", visitor);
    
                contex.SaveChanges();
    
    
    
                //cinema.Visitors.Attach(visitor);
    
            }


    Почему возникает такая проблема?

     

    Заранее спасибо!




    • Изменен тип segaman 11 ноября 2011 г. 11:42
    • Изменено segaman 11 ноября 2011 г. 11:43
    • Изменен тип Abolmasov Dmitry 16 ноября 2011 г. 12:36
    11 ноября 2011 г. 11:27

Ответы

  • По вашей модели видно, что у каждого посетителя театра должна быть ссылка на сам театр. Добавьте ссылку на нужный театр для нового посетителя. У вас получится что-то вроде:

     

    var visitor = new Visitor { Cinema_theater = selectedTheater, ... };
    context.AddToVisitors(visitor);
    context.SaveChanges();
    

     

    • Помечено в качестве ответа Abolmasov Dmitry 16 ноября 2011 г. 12:36
    11 ноября 2011 г. 12:49