Ajuda com Linq
15/08/2012
0
Bom dia pessoal,
estou tentando utilizar o linq para retornar alguns dados. Até consegui fazer, o exemplo abaixo está funcionando perfeitamente.
Só que o where do código abaixo não é exatamente o quer preciso. Aí vem o problema que não estou conseguindo resolver
ao invés de lista.ResId == 11445, seria a data_diagnostico que é um valor que está dentro do campo lista.ListaCID.
para ficar mais claro segue a estrutura abaixo.
sobrevida global tem a propriedade ListaCID que é uma lista de CidXml
resumindo... seria o where onde da Data estiver entre valores que vem de parâmetros..só que não sei chegar nesse campo.. tipo
where lista.ListaCID.Data == 15/08/2012
obrigado
estou tentando utilizar o linq para retornar alguns dados. Até consegui fazer, o exemplo abaixo está funcionando perfeitamente.
public static ListSobrevidaGlobal ReturnListSobrevidaGlobal( int anoBase, string cidPesquisa, string estadioPesquisa ) { ListSobrevidaGlobal listaCompleta = new ListSobrevidaGlobal(); listaCompleta = ReturnListAtendimentos(); if( listaCompleta != null && listaCompleta.Count 0 ) { var listaSelecionada = from lista in listaCompleta where lista.ResId == 11445 select lista; ListSobrevidaGlobal listaFinal = new ListSobrevidaGlobal(); foreach( var item in listaSelecionada ) { SobrevidaGlobal sg = new SobrevidaGlobal() { ResId = item.ResId, ListaCID = item.ListaCID, DataObito = item.DataObito, PrestadorId = item.PrestadorId }; listaFinal.Add( sg ); } return listaFinal; } else { return null; } }
Só que o where do código abaixo não é exatamente o quer preciso. Aí vem o problema que não estou conseguindo resolver
var listaSelecionada = from lista in listaCompleta where lista.ResId == 11445 select lista;
ao invés de lista.ResId == 11445, seria a data_diagnostico que é um valor que está dentro do campo lista.ListaCID.
para ficar mais claro segue a estrutura abaixo.
sobrevida global tem a propriedade ListaCID que é uma lista de CidXml
public class SobrevidaGlobal { public int ResId { get; set; } public ListCidXml ListaCID { get; set; } public DateTime? DataObito { get; set; } public int? PrestadorId { get; set; } }
public class CidXml { public DateTime Data { get; set; } public string Cid { get; set; } public string Tipo { get; set; } public string Estadio { get; set; } }
resumindo... seria o where onde da Data estiver entre valores que vem de parâmetros..só que não sei chegar nesse campo.. tipo
where lista.ListaCID.Data == 15/08/2012
obrigado
Eric Miranda
Curtir tópico
+ 0
Responder
Posts
15/08/2012
Eric Miranda
Boa tarde galera..depois de muito apanhar ficou assim meu código final
abs
public static ListSobrevidaGlobal ReturnListSobrevidaGlobal( DateTime dataBase, string cidPesquisa, string estadioPesquisa ) { ListSobrevidaGlobal listaCompleta = new ListSobrevidaGlobal(); listaCompleta = ReturnListAtendimentos(); int anoProcessamento = dataBase.Year - 6; DateTime dtInicio = new DateTime(anoProcessamento,1,1); DateTime dtFinal = new DateTime( anoProcessamento, 12, 31 ); if( listaCompleta != null && listaCompleta.Count 0 ) { var listaSelecionada = from lista in listaCompleta where lista.ListaCID.Exists( c = c.Cid == cidPesquisa && c.Estadio == estadioPesquisa && c.Data = dtInicio && c.Data = dtFinal ) select lista; ListSobrevidaGlobal listaFinal = new ListSobrevidaGlobal(); foreach( var item in listaSelecionada ) { SobrevidaGlobal sg = new SobrevidaGlobal() { ResId = item.ResId, ListaCID = item.ListaCID, DataObito = item.DataObito, PrestadorId = item.PrestadorId }; listaFinal.Add( sg ); } return listaFinal; } else { return null; } }
abs
Responder
Clique aqui para fazer login e interagir na Comunidade :)