Conversión de consulta SQL a consulta Lambda utilizando las mejores prácticas
Frecuentes
Visto 135 veces
0
I'm trying to transcribe the SQL below to Lambda Expression and wondered how best to me indicate to this conversion.
declare @codigoGrupo int
declare @nomeModelo varchar(20)
set @codigoGrupo = 8 -- null
set @nomeModelo = '%segundo%'
select g.dc_nome, m.dc_nome
from hlp.grupo_solicitacao g
left join hlp.modelo_solicitacao m on g.codigo_grupo_solicitacao = m.codigo_grupo_solicitacao
where 1=1
and (g.codigo_grupo_solicitacao = @codigoGrupo or @codigoGrupo is null)
and (m.dc_nome like @nomeModelo or @nomeModelo is null)
2 Respuestas
1
I really think that it will be strange with lambda expression. It is easier to do it like this and much cleaner:
int? codigoGrupo =8;
string nomeModelo="segundo";
var result= (
from g in grupo_solicitacao
from m in modelo_solicitacao
.Where(a=>a.codigo_grupo_solicitacao=g.codigo_grupo_solicitacao)
.DefaultIfEmpty()
where 1==1
&& (g.codigo_grupo_solicitacao==codigoGrupo || !codigoGrupo.HasValue)
&& (m.dc_nome.Contains(nomeModelo) || nomeModelo==null)
select new{g.dc_nome, m.dc_nome}
);
contestado el 03 de mayo de 12 a las 13:05
If you are fine with the answer then you might consider accepting it - Arion
0
Algo como esto:
int? codigoGrupo = 8;
string nomeModelo = "segundo"
bool filterCodigoGrupo = codigoGrupo.HasValue;
bool filterNomeModelo = !String.IsNullOrEmpty( filterNomeModelo );
var list = context.grupo_solicitacao
.Where( o =>
( 1 == 1 )
&&
( !filterCodigoGrupo || o.codigo_grupo_solicitacao == codigoGrupo.Value )
&&
( !filterNomeModelo || o.modelo_solicitacao.dc_nome.Contains( nomeModelo ) )
)
.Select( o => new { codigo = o.dc_nome, model = o.modelo_solicitacao.dc_nome } )
.ToList();
contestado el 03 de mayo de 12 a las 13:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas c# lambda or haz tu propia pregunta.
Is this for Linq to Entities ( Entity Framework )? - Nick Butler
It's for linq2sql, isn't it ? - ykatchou