Es bastante práctica.
Está bueno cuando son pocos datos esta opción, porque en la primer consulta en ese caso estas abriendo toda la tabla y después aplicas los filtros localmente?? Linq lo maneja así, o tiene algún tipo de optimización para no traer todos registros en este caso ?? Gracias Eugenio _____ De: [email protected] [mailto:[email protected]] En nombre de Duhalde Martín Enviado el: Miércoles, 12 de Mayo de 2010 10:03 a.m. Para: [email protected] Asunto: [puntonet] Linq Eugenio: yo hago algo así que es re simple var consulta = bd.GetTable<Entidad>().Select(c => c); if (condición de bousqueda 1 != nula) consulta = consulta.Where(c => condición); if (condición de bousqueda 2 != nula) consulta = consulta.Where(c => condición); etc Ejemplo: public List<ConsultaResumenGuia> GuiasObtenerPorFlitro( IEntidadContextoDeUsuario contextoDeUsuario, Paginado Pagina, FiltrosGuia filtroGuia, bool traerDetalleElementos) { List<ConsultaResumenGuia> retval = new List<ConsultaResumenGuia>(); List<EntidadGuia> lista; List<EntidadExpedientePorFiscalizacion> datosFiscalizaciones = null; using (ContextoDeDatosDeDeposito bd = new ContextoDeDatosDeDeposito { DeferredLoadingEnabled = false }) { #region DataLoadOptions bd.LoadOptions = GenerarDataLoadOptionsParaGuias(); #endregion var consulta = bd.GetTable<EntidadGuia>().Select(c => c); #region Filtro de Guias FiltrosGuia filtroG = filtroGuia;//.Value; #region Filtro Fechas if (filtroG.FechaDesde.HasValue) filtroG.FechaDesde = new DateTime(filtroG.FechaDesde.Value.Year, filtroG.FechaDesde.Value.Month, filtroG.FechaDesde.Value.Day); if (filtroG.FechaHasta.HasValue) filtroG.FechaHasta = new DateTime(filtroG.FechaHasta.Value.Year, filtroG.FechaHasta.Value.Month, filtroG.FechaHasta.Value.Day, 23, 59, 59); if (filtroG.FechaDesde.HasValue) consulta = consulta.Where(c => c.Fecha >= filtroG.FechaDesde.Value); if (filtroG.FechaHasta.HasValue) consulta = consulta.Where(c => c.Fecha <= filtroG.FechaHasta.Value); if (filtroG.DocumentoNumero.HasValue) consulta = consulta.Where(c => c.RelacionDocumentosVinculados.Any(e => e.Numero == filtroG.DocumentoNumero)); if (filtroG.DocumentoAno.HasValue) consulta = consulta.Where(c => c.RelacionDocumentosVinculados.Any(e => e.Ano == filtroG.DocumentoAno)); _____ De: [email protected] [mailto:[email protected]] En nombre de Eugenio Alonso Enviado el: Martes, 11 de Mayo de 2010 09:27 p.m. Para: [email protected] Asunto: [puntonet] Linq Hola a todos Estoy desarrollando un nuevo proyecto con Linq y no encontré la forma de crear una consulta con filtros dinámicos de acuerdo a cierta selección que haga el usuario. Por ejemplo, tengo una página con varios checkbox, y de acuerdo a la selección que haga el usuario en estos check, la consulta aplica o no los filtros. Antes era bastante simple la operatoria, en el stringSql que armaba concatenaba o no los filtros según correspondiera. Para hacer algo así con Linq como debería ser la operatoria? Saludos y gracias Eugenio _____ E-mail clasificado por el Identificador de Spam Inteligente de Terra. Para modificar la categoría clasificada acceda a su webmail. _____ Este mensaje ha sido verificado por el E-mail Protegido. Antivirus actualizado en 12/05/2010 / Versión: 0.96/10985
