context.SaveChanges() выдает ошибку при добавлении

Используя этот код, я не получаю ошибок

   public static void kirisekle(string kirisadi, int genislik, int derinlik, int uzunluk, int katid)
    {
        Beam newbeam = new Beam { Kirisadi = kirisadi, Genişlik = genislik, Derinlik = derinlik, Uzunluk = uzunluk, KatID = katid };
        using (pehkEntities context = new pehkEntities())
        {

            context.Beams.Add(newbeam);
            context.SaveChanges();
        }
    }

Однако при использовании этого кода я получаю сообщение об ошибке "dbupdateexception was unhandled"

public static void dosemeekle(string dosemeadi, int en, int boy, int kalinlik, int katid)
    {
        Slab newslab = new Slab { DosemeAdi = dosemeadi, En = en, Boy = boy, Kalınlık = kalinlik, KatID = katid };
        using (pehkEntities context = new pehkEntities())
        {

            context.Slabs.Add(newslab);
            context.SaveChanges();
        }
    }

Как мне найти причину этой ошибки и исправить ее?

Я использую этот код, чтобы увидеть внутреннее исключение:

context.Slabs.Add(newslab);
        try
        {
            context.SaveChanges();
        }
        catch( System.Data.Entity.Infrastructure.DbUpdateException ex)
        {
            MessageBox.Show(ex.InnerException.Message);

        }

Однако он показывает, что в окне сообщения говорится: «Произошла ошибка при обновлении записей. Подробности см. во внутреннем исключении». Только.


person Hasan    schedule 07.10.2012    source источник
comment
Вы смотрели на InnerException этого исключения?   -  person Nagg    schedule 08.10.2012
comment
Также, пожалуйста, покажите свои объекты POCO   -  person Sidharth Mudgal    schedule 08.10.2012
comment
Возможно, обязательное поле без значения по умолчанию добавляется в вашу базу данных, но не в вашу модель.   -  person Silvermind    schedule 08.10.2012
comment
Добавлены детали InnerException.   -  person Hasan    schedule 08.10.2012
comment
попробуйте ex.GetBaseException(). Сообщение   -  person Felipe Anselmo    schedule 10.06.2020


Ответы (1)


Попробуйте взглянуть на определение вашей таблицы в SQL:

  • все непустые поля предоставлены в коде?

  • когда происходит исключение, длина строки превышена

  • вы используете первичный ключ, который уже существует в базе данных?

Это наиболее вероятные причины для исключения, если нет проблем с подключением. Я так предполагаю, так как первый метод работает.

person Kamil Krasinski    schedule 07.10.2012
comment
are you using primary key, which already exists in database? Это решило мою проблему. Я взглянул на свою базу данных и понял, что она уже заполнена данными, которые я пытаюсь снова вставить; поэтому удаление этих записей решило проблему. Спасибо. - person mok; 13.09.2016