我需要生成查询 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 类型进行任何转换。这主要是因为PostgreSQL jsonb类型已经存在扩展支持(包括你想要做的事情(,并且该类型比hstore强大得多。考虑从 hstore 切换到 jsonb。
这是 hstore 的问题跟踪查询转换。