У меня есть таблица 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 генерирует FooBar
(как мое свойство. net) и вместо name
ядро ef генерирует Name
.
Если есть способ заставить ядро ef генерировать следующий запрос:
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");
Оба они не работают.