当我使用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”操作的结果。
有人遇到过同样的问题吗?以及如何解决?