PESQUISAR DENTRO DO XML

MARCELOKROL 30/06/2022 22:02:27
#500142
Pessoal, cenário: No banco de dados postgres, tenho uma tabela par armazenar os XMLs das NFes. Nessa tabela tenho um campo do tipo "xml" do postgres. Gostaria de saber se tem como efetuar pesquisas dentro desse campo utilizando EF core 6, mais ou menos como se fosse um "LIKE" de um Select do SQL, mas utilizando entity framework.
NOWLIGHTS 01/07/2022 11:34:33
#500144
Resposta escolhida
Boa tarde,

veja se assim resolve

Citação:

await _DbContext.Table.Where(x=> x.Coluna.Contains(VALOR)).ToListAsync()

MARCELOKROL 01/07/2022 13:55:00
#500147
Assim dá certo se a coluna for do tipo TEXT ou VARCHAR e no mapeamento do EF também for especificado os tipos. Já se a coluna for do tipo XML, usando o contains não vai.

Até gostaria de levantar outra questão:

Quais as diferença de usar o field como TEXT ou XML? Quais ganhos eu teria? Pois em testes aqui o field como TEXT funcionou muito bem, mas penso que se colocaram o tipo XML para ser definidos os campos, deve ter algum sentido.
MARCELOKROL 04/07/2022 08:27:37
#500155
Analisando o processo, acabei alterando o tipo da coluna do banco de XML para TEXT, pois nessa coluna será pesquisado apenas se tal tag existe com uma certa condição. No qual o tipo de dados TEXT cumpre muito bem a tarefa, sendo desnecessário implementar funções monstruosas e que a algum tempo "poderá" trazer problemas.

Creio que nós desenvolvedores, temos que analisar todos os fatores, não é só escrever código, mas sempre estar verificando se não estamos criando uma bazuca para caçar passarinho.

Obrigado a todos pelos comentários.
Tópico encerrado , respostas não são mais permitidas