Ошибка при вставке в таблицу, содержащую столбец идентификаторов System.Data.Entity.Infrastructure.DbUpdateException - PullRequest
0 голосов
/ 20 сентября 2018

В моем проекте 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.

...