Ключевое слово Postgres DEFAULT не распознается как значение столбца в ядре EF? - PullRequest
0 голосов
/ 30 сентября 2019

Я получаю очень странную ошибку, когда вставляю запись в свою базу данных postgres, используя ядро ​​EF. Я использую библиотеку Npgsql.EntityFrameworkCore.PostgreSQL.

Вот моя модель данных, категория имеет автоматически сгенерированный PK "CategoryId":

[Table("Category")]
public class Category 
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    [Column("CategoryId")]
    public int Id { get; set; }

    [Required]
    public string Name { get; set; }

    public string Description { get; set; }
}

И яс помощью SQL-запроса для вставки новой записи категории, вот код:

    var context = scope.ServiceProvider.GetRequiredService<PortalContext>();

    string sql = @"INSERT INTO schema.""Category""(""CategoryId"", ""Name"", ""Description"") 
                        VALUES (DEFAULT, @NAME, @DESCRIPTION);";
    var nameParameter = new NpgsqlParameter("@NAME", NpgsqlDbType.Text);
    nameParameter.Value = name;
     var descriptionParameter = new NpgsqlParameter("@DESCRIPTION", NpgsqlDbType.Text);
    descriptionParameter.Value = description;
    var category = await context.Categories
      .FromSql(
        sql,
        nameParameter,
        descriptionParameter)
      .FirstOrDefaultAsync();

Получение исключения из выполнения, но запись успешно вставлена ​​в базу данных.

Исключение - Обязательный столбец CategoryId не присутствовал в результатах операции FromSql.

Кто-нибудь сталкивался с такой же проблемой? И как это исправить?

...