MySqlException: поле 'id' не имеет значения по умолчанию - Entity Framework Core 2.1 - PullRequest
0 голосов
/ 26 апреля 2020

Я новичок в ASP. NET Core MVC. Я получаю ошибку при вставке данных в MySQL с помощью Entity Framework Core. Во время отладки я получил идентификатор в минус (-2147482645), назначенный контекстом. Почему идентификатор назначен EF? Как устранить эту ошибку? Таблица в столбце id MySQL имеет значение NOTNULL, PK и Автоинкремент установлены по умолчанию. enter image description here

Вот мой DBContextFile

    {
        public AppDbContext(DbContextOptions<AppDbContext> options)
            : base(options)
        { }

        public DbSet<PCBDesign> pCBDesigns { get; set; }



        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
        }
    }

Вот мой класс

    {

        [Key]
        public int id { get; set; }
        public string userId { get; set; }
        public string desginNo { get; set; }
        public DateTime Crdate { get; set; }
        public string name { get; set; }
        public string contact { get; set; }
        public string notes { get; set; }
    }

После вызова context.SaveChanges (); Ошибка при получении:

Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while updating the entries. See the inner exception for details. ---> MySql.Data.MySqlClient.MySqlException: Field 'id' doesn't have a default value ---> MySql.Data.MySqlClient.MySqlException: Field 'id' doesn't have a default value

1 Ответ

0 голосов
/ 27 апреля 2020

Проблема решена! Шаг 1: Скопированный сценарий создания таблицы для каждой таблицы Шаг 2: Удаленная таблица создана из того же сценария. Шаг 3: Добавлена ​​одна фиктивная строка в таблицу.

Дополнительная информация: я выполнил миграцию из кода вначале, я думаю, что во время миграции возникла некоторая проблема с Entity Framework Core. Отныне я не буду выполнять миграцию, это приведет к большей ошибке для меня.

Спасибо.

...