ObjectContext.SaveChanges () viola la clave primaria, arroja UpdateException?

Parafraseando deesta documentación de MSDN ...

Entity Framework genera una instrucción INSERT y se ejecuta en el origen de datos cuando se llama a SaveChanges en ObjectContext.

Si la operación INSERT tiene éxito, los valores generados por el servidor se vuelven a escribir en ObjectStateEntry. Cuando AcceptChanges se llama automáticamente al final de la ejecución de SaveChanges, se calcula una EntityKey permanente utilizando los nuevos valores generados por el servidor.

Esto no parece estar ocurriendo en mi código. Cuando llamoObjectContext.SaveChanges(), unUpdateException es arrojado conInnerException.Message valor:

"el valor clave duplicado viola la restricción única student_term_data_pkey"

Aquí está el código ofensivo:

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.
}

He verificado queStudentTermData.Id está marcado como una EntityKey en mi modelo de datos de Entity. ¿Alguien tiene alguna idea o sugerencia?

Respuestas a la pregunta(2)

Su respuesta a la pregunta