AncientD
@AncientD
software developer

Выборка с постгре по пересечению jsonb?

Есть у меня вьюха с jsonb, мне надо найти пересечение данных

запрос он работает, пытаюсь сделать тоже самое в коде
select * from "ListView" 
where("Relationship" @> '[{"Type": "Action", "RelationshipId": "3"}]');


filterParams.Append("Relationship", $"\"Relationship\" @> @Relationship", $"'[{{\"Type\": \"{Relationship.Type}\", \"RelationshipId\": \"{Relationship.Id}\"}}]'");


Постоянно получаю такую ошибку, пробовал подставлять ::jsonb c разных сторон, без толку...
[ERROR] 42883: operator does not exist: jsonb @> text    at Npgsql.NpgsqlConnector.<>c__DisplayClass161_0
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
AncientD
@AncientD Автор вопроса
software developer
надо было убрать одиночные '
ибо при запуске билдер оборачивает сам
и добавить jsonb на значения

рабочий вариант
filterParams.Append("Relationship", $"\"Relationship\" @> @Relationship::jsonb", $"[{{\"Type\": \"{Relationship.Type}\", \"RelationshipId\": \"{Relationship.Id}\"}}]");
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@galaxy
Вопрос больше про C# (в котором не разумею), но что если так:
filterParams.Append("Relationship", $"\"Relationship\" @> @Relationship::jsonb", ....);

?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы