postgresql - ef core 生成无效查询
问题描述
我有一个表foo
,其中一列是bar
jsonb 类型,其中包含属性foo_bar
jsonb。
我想用这样的 ef 核心查询来计算元素的数量:
await dbContext.Foo.CountAsync(x => x.bar.FooBar.Name == "some name")
;
Ef core 生成这样的查询:
SELECT COUNT(*)::INT
FROM foo AS f
WHERE f.bar#>>'{FooBar,Name}' = 'SomeName'
它对我不起作用,因为不是正确的属性名称foo_bar
ef core generate FooBar
(作为我的 .net 属性)而不是name
ef core generate Name
。
如果有办法让 ef core 生成以下查询:
SELECT COUNT(*)::INT
FROM foo AS f
WHERE f.bar#>>'{foo_bar,name}' = 'Production'
我试图用属性标记我FooBar
的[JsonPropertyName("foo_bar")]
属性。
我也尝试使用流利的方法:
entity.Property<FooBar>("FooBar").HasColumnName("foo_bar").HasColumnType("jsonb");
他们两个都不行。
解决方案
[JsonPropertyName]
刚刚添加了对 的支持,将从版本 5.0.0-preview6 开始工作。
推荐阅读
- python - 执行按另一列的值分组的熊猫列的规范化
- recaptcha - 在同一页面上加载 Enterprise Recaptcha (invisble) 和 V2 Checkbox (non-enterprise) 会导致 V2 Checkbox 默认为 Enterprise
- foreach - VTL 脚本 - ForEach 循环遍历数组
- python - sqlalchemy merge() 使现有记录值为空
- webpack - Webpack — 模板中的模板
- botframework - 具有 ChannelData 空引用和 Facebook Messenger 的 Bot Framework 4 新 Activity
- c# - 选中复选框后变量包含空值
- svg - UWP SVG 图像随机不显示
- javascript - React 状态数组似乎恢复到原始状态
- javascript - 反应 onClick 不会在递归构建的嵌套跨度上触发