Я получаю очень странную ошибку, когда вставляю запись в свою базу данных 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.
Кто-нибудь сталкивался с такой же проблемой? И как это исправить?