Mostrando entradas con la etiqueta distinct(). Mostrar todas las entradas
Mostrando entradas con la etiqueta distinct(). Mostrar todas las entradas

martes, 21 de junio de 2011

select distinct linq

Supongamos que tenemos el siguiente DTO:

    public class Receta
    {
        public virtual int SqIdreceta {get;set;}
        public virtual string Shortdescom {get;set;}
        public virtual Decimal? Porcion {get;set;}
        public virtual string Ord {get;set;}
        public virtual string Unidadventa {get;set;}
        /// <summary>
        /// Maestra
        /// </summary>
        public virtual Maestra Maestra {get;set;}
        /// <summary>
        /// Maestra nuevamente
        /// </summary>
        public virtual Maestra Maestraplucom { get; set; }
   }

supongamos que tenemos una tabla "Receta" que describe los productos que componen otro(por ejemplo 1/4 de pollo con papas fritas y bebida), si hacemos un select a esta tabla para desplegar las recetas en un combo para mostrar cuantas recetas tenemos, cada receta va a aparecer n veces (n es la cantidad de ingredientes que componen la receta) haremos un select distinct para obtener las recetas y mostraremos de nuevo el orderby



        public IList GetAllRecetaCombo()
        {
            IList<Receta> listaReceta = new List<Receta>();

            BpCrud<Receta> bpCrudReceta = new BpCrud<Receta>();//clase que va a la base de datos y que tiene sus métodos CRUD ya implementados

            listaReceta = bpCrudReceta.BM.List();//vienen las recetas repetidas

            var recetaInfo =
             (
                from rec in listaReceta
                orderby rec.Maestra.Shortdes// las ordenamos
                select new
                {
                    PLUReceta = rec.Maestra.Plu,
                    DescripcionReceta = rec.Maestra.Shortdes
                }
            ).Distinct().ToList();//filtramos
            return recetaInfo.ToList();
        }