При использовании Entity Framework Core с PostgreSQL я могу изменить одно поле в документе JSON, не извлекая весь документ, благодаря поддержке PostgreSQL типов JSON и JSONB. Однако Entity Framework Core, похоже, не предоставляет встроенных методов для прямого управления полями JSON таким способом. Вместо этого я могу выполнять только необработанные команды SQL, которые используют функции JSON PostgreSQL, такие как jsonb_set.
Код: Выделить всё
using (var context = new MyDbContext())
{
var sql = "UPDATE your_table SET json_column = jsonb_set(json_column, '{yourField}', '\"newValue\"') WHERE id = @id";
var id = yourEntityId;
context.Database.ExecuteSqlRaw(sql, new Npgsql.NpgsqlParameter("@id", id));
}
Так ли это по-прежнему происходит с недавно выпущенной .NET 9? Я хотел бы использовать только запросы LINQ вместо Raw SQL, но не могу найти дополнительной информации. Есть альтернативы?
Подробнее здесь:
https://stackoverflow.com/questions/792 ... eld-update