ObjectContext.SaveChanges () нарушает первичный ключ, выбрасывает UpdateException?

Перефразируя изэта документация MSDN ...

Инструкция INSERT генерируется Entity Framework и выполняется в источнике данных, когда SaveChanges вызывается для ObjectContext.

Если операция INSERT выполнена успешно, сгенерированные сервером значения записываются обратно в ObjectStateEntry. Когда AcceptChanges вызывается автоматически в конце выполнения SaveChanges, постоянный EntityKey вычисляется с использованием новых сгенерированных сервером значений.

Это, кажется, не происходит в моем коде. Когда я звонюObjectContext.SaveChanges(),UpdateException брошен сInnerException.Message значение:

"дубликат значения ключа нарушает уникальное ограничение student_term_data_pkey"

Вот оскорбительный код:

using (DataAccessLayerEntities context = new DataAccessLayerEntities()) {
     StudentTermData mostCurrent = new StudentTermData() {
          // Foreign keys:    
          StudentId = studentId,
          TermId = currentTerm.Id,

          // Non-nullable properties:
          SponsorCode = string.Empty,
          AdmissionNumber = string.Empty,
          Expiration = string.Empty
     };

     context.StudentTermDatas.AddObject(mostCurrent);
     context.SaveChanges();  // UpdateException occurs here.
}

Я подтвердил, чтоStudentTermData.Id помечен как EntityKey в моей модели данных Entity. У кого-нибудь есть идеи или предложения?

Ответы на вопрос(2)

Ваш ответ на вопрос