Entity Framework 核心 PostgreSQL hstore 查询

Entity Framework Core PostgreSQL hstore queries

我需要为 hstore 列中的值生成查询

var collection = await _context.Settings
.Select(b => new
{
    SettingId = b.SettingId,
    SettingParentId = b.SettingParentId,
    SettingValue = (b.SettingValue.ContainsKey('key') ? b.SettingValue['key'] : "")
})
.OrderBy(x => x.SettingId)

但这不是最好的方法,是否存在任何方法来实现将此查询转换为此 sql?

SELECT setting_id, 
       setting_parent_id,
       setting_value -> 'key' AS setting_value
FROM settings

Npgsql EFCore 提供程序目前不对 hstore 类型进行任何转换。这主要是因为扩展支持已经存在for the PostgreSQL jsonb type(包括你想做的),而且那个类型比hstore强大得多。考虑从 hstore 切换到 jsonb。

This is the issue 跟踪 hstore 的查询翻译。