none
Как получить вставленный ID RRS feed

  • Общие обсуждения

  • Здравствуйте. Подскажите, как решить следующую задачу:

    Необходимо сформировать и сохранить в БД некоторый план путем парсинга XML файла. Парсится все нормально, заполняются все необходимые поля, кроме id.

    ID формируется при сохранении записи в БД (в БД id - счетчик). Выполняется следующий метод:

    DomainServiceTeachingLoad domainContext = new DomainServiceTeachingLoad();
     
    public void AddCurriculum(Curriculum curriculum)
    {
        domainContext.Curriculums.Add(curriculum);
        domainContext.SubmitChanges();
    }

    Сохранение в БД проходит успешно, id нормально присваивается.

    Проблема в том, что это id необходимо запомнить после сохранения в БД, чтобы в дальнейшем его использовать для автоматического заполнения связанных записей.

    Метод, который парсит XML файл и сохраняет в БД, возвращает этот план:


    public Curriculum SetNewCurriculum(параметры)
    {
         Curriculum curriculum = new Curriculum();
     
         // заполняется curriculum
     
         serviceCurriculum.AddCurriculum(curriculum); // сохранение
     
         return curriculum; // возвращает план
    }

    Но после сохранения в БД (в строке return curriculum), id все равно остается равным нулю. Как же заполнить это поле после сохранения в БД?


    5 марта 2015 г. 9:48

Все ответы

  • По умолчанию EF должна автоматически заполнять данное поле после успешной вставки данных. В первую очередь посмотрите через профайлер, делает ли он это и что возвращает.

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

    5 марта 2015 г. 16:44
    Модератор
  • Может быть проблема в том, что используются асинхронные потоки?
    6 марта 2015 г. 8:51
  • Возможно, но этого не должно быть. Лучше всё же посмотреть через профайлер запрос.

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

    15 марта 2015 г. 10:13
    Модератор