Qadeer Ahmed Khan Ответов: 1

Получение ошибки из ядра entity framework "не удается вставить явное значение для столбца identity в таблице "организации", когда IDENTITY_INSERT установлен в значение OFF"


Привет, у меня есть 2 стола

public class User 
{

        
        public int Id { get; set; }

        public string Name { get; set; }
        public string Password { get; set; }
         
        public virtual Organization Organization { get; set; }
}


 public class Organization
    { 
        public int Id { get; set; }

        public string Name { get; set; }
        public string EmailAddress { get; set; }
        public string Password { get; set; } 

        public override bool Equals(object obj)
        {
            Organization that = obj as Organization;

            if (that != null)
            {
                return (this.Id == that.Id);
            }

            return base.Equals(obj);
        }
    }


При попытке вставить строку в Пользователя я получаю следующую ошибку.

Cannot insert explicit value for identity column in table 'Organizations' when IDENTITY_INSERT is set to OFF.



Код выглядит следующим образом


[HttpPost]
       public async Task<IActionResult> Post([FromBody]User p_User)
       {
           try
           {
               using (var dataContext = new AspCoreContext(AspCoreContext.BuildOptions()))
               {
                   dataContext.Users.Add(p_User);


                   await dataContext.SaveChangesAsync();
                   return Ok(p_User);
               }
           }
           catch (Exception ex)
           {
               const string msg = "Unable to insert user";
               Globals.ErrorLogger(ex, msg);
               return StatusCode((int)HttpStatusCode.InternalServerError, msg);
           }
       }


В то время как тело запроса является

{ 
        "name": "Qadeer",
        "password": "123456",
        "token": null,
        "organization": {"Id": "1"}
}


Что я уже пробовал:

пробовал настройки реляционные обозначения

1 Ответов

Рейтинг:
1

Gerry Schmitz

Он говорит, что вы пытаетесь вставить новое значение в столбец идентификаторов (который генерирует его собственные значения).

Если вы поместите атрибут [Key] в свойство "Id" (т. е. поле "key", соответствующее столбцу IDENTITY), это, вероятно, решит вашу проблему.


Qadeer Ahmed Khan

Но это не сработало. Я добавил [ключ] к обоим классам и все же остался прежним. Если я отправляю организацию как null в json, она работает нормально. Не знаю, почему он пытается вставить данные в таблицу организаций, в то время как он должен просто вставить в нее ключ отношения.