Jump to content
Sign in to follow this  
Flatdnl

Entity Framework - Consulta Dinamica

Recommended Posts

Flatdnl

Boa Tarde Galera,

Estou tentando fazer uma consulta dinamica utilizando o Entity Framework...

Exemplo:

Caso o "Campo 1" esteja preenchido, ele inclua o "Campo 1" na clausula WHERE...

Caso ele não esteja preenchido, ele não inclui o campo na WHERE...

ele busca apenas pelos campos que estão preenchidos...

Alguem tem alguma idéia de como fazer isso?

Desde ja agradeço!

Share this post


Link to post
Share on other sites
Flatdnl

Obrgigado bruno1234,

Ontem fazendo umas pesquisas, eu encontrei essa solução, porem achei algo estranho... vou tentar explicar pra ver se alguem sabe o porque isso acontece...

Se eu utilizar dessa forma funciona perfeitamente:

var query = (from c in Dados select c).Where(c => c.Campo1 == campo1);

Porem, se eu utilizar da forma que voce me mandou, ele não filtra os dados, como se não tivesse a WHERE:

var query = from c in Dados select c;
query = query.Where(c => c.Campo1 == campo1);

Alguem sabe porque isso acontece?

Share this post


Link to post
Share on other sites
Caça

Essa instrução não é "valida", porque ao fazeres "c >= c.Campo1 = campo1", o que ele interpreta é "c >= False".


Está a trabalhar com C# ou VB.NET?

Se for C# o tópico tem de ser movido..


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Flatdnl

Caça,

Estou trabalhando em VB.NET, utilizei apenas o exemplo que o Bruno colocou...

Em VB.NET é o seguinte(me corrijam se eu estiver errado).

Assim funciona:

Dim query = (From c in Dados Select campo).Where(Function(c) c.campo = "teste")

Assim não funciona:

Dim query = From c in Dados Select campo
query.Where(Function(c) c.campo1 = "teste")

Alguem sabe explicar?

Share this post


Link to post
Share on other sites
Caça

Tenta assim

Dim query = From c in Dados Select c
query.Where(Function(c) c.campo1 = "teste")


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Flatdnl

Caça,

Não funciona...

ele esta passando normalmente pela instrução onde esta o Where.

mas é como se ele não tivesse aceitando a instrução.

ja atualizei o modelo, ja fiz de tudo mas não adianta.

Mas o curioso é que se voce coloca ".Where(..." junto com o "From c in..."

ai ele funciona normalmente, mas quando é incluido depois da declaração... não funciona!

Share this post


Link to post
Share on other sites
Caça

Pois não.

Troca

query.Where(Function(c) c.campo1 = "teste")

por

query = query.Where(Function(c) c.campo1 = "teste")


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Flatdnl

afe... não acredito que é só isso!!! huahua...

funcionou perfeitamente.

Muito obrigado!

Problema Resolvido!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.