В моем проекте ASP.Net MVC 4 я пытаюсь вставить данные в таблицу с идентификатором столбца автоинкремента (ACTIVITYID), который является первичным ключом.
Таблица класса
public partial class ACTIVITY
{
public decimal ACTIVITYID { get; set; }
public Nullable<decimal> CALLTICKETNUMBER { get; set; }
public string ACTION { get; set; }
public Nullable<long> STATUSIDATTHETIMEOFACTION { get; set; }
public short RECORDFORDISPLAY { get; set; }
public Nullable<System.DateTime> ACTIVITYDATE { get; set; }
public string USER_ { get; set; }
public virtual CALLTICKET CALLTICKET { get; set; }
}
При вызове следующий метод генерирует исключение
public static void AddActivity(long ticketNumber, string action, string userId, int? previousStatusId = null)
{
var newActivity = new ACTIVITY
{
ACTION = action,
ACTIVITYDATE = System.DateTime.Now,
CALLTICKETNUMBER = ticketNumber,
STATUSIDATTHETIMEOFACTION = previousStatusId,
USER_ = userId,
};
dbOraContext.ACTIVITies.Add(newActivity);
dbOraContext.SaveChanges();
}
При просмотре ACTIVITies.Add (newActivity) ACTIVITYID вставляется со значением 0.
При отслеживании внутреннего исключения отображается следующее исключение:
{"ORA-00001: ограничение уникальности (ATM_CRM.PK_ACTIVITY) нарушил "}
Также произошло исключение типа 'System.Data.Entity.Infrastructure.DbUpdateException'.
Ранее я работал с MS SQL Server,и никогда не сталкивался с такой проблемой.Автоинкрементный столбец должен автоматически получить свое значение.
Обратите внимание, что я работаю над БД Oracle.