Postgres关键字DEFAULT在EF核心中不能识别为列值吗?

时间:2019-09-30 09:04:48

标签: postgresql asp.net-core-2.1 ef-core-2.1

当我使用EF核心将记录插入到postgres数据库中时,出现一个非常奇怪的错误。我正在使用的库是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查询插入新的Category记录,这是代码:

    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”操作的结果。

有人遇到过同样的问题吗?以及如何解决?

0 个答案:

没有答案