How can I make a select with Linq to take out rows

0

HERE I SHOW MY LINQ CODE

    //select para mostrar nombres en ver,delete  
public ComprarBloqueosBusqueda BuscaPorNombre(int? id )
        {
            ComprarBloqueosBusqueda vCOMBLO_Comprar = new ComprarBloqueosBusqueda();
            var query2 = (from BloExc in contexto.BloqueoExcursion                         
                         /* haciendo join para Comprar bloqeueoExcursion*/
                          join Exc in contexto.Excursion
                          on BloExc.BLE_ExcursionId equals Exc.ExcursionesId

                      where                                                      

                    //igualando el ID de BloqueoExcursion
                       Exc.ExcursionesId == BloExc.BLE_ExcursionId &&
                       BloExc.BLE_BloqueoID == id &&

                      select new
                      {
                        //haciendo select para bloqueo excursion                                
                          BLE_ExcursionId = BloExc.BLE_ExcursionId,
                          EXC_Nombre = Exc.EXC_Nombre,

                      }); //.Take(1000);

        var lComBloquepsNom = query2.ToList();
        foreach (var datos in lComBloquepsNom)
        {
            //agregando los datos de bloqueoexcursiones para comprar
            vCOMBLO_Comprar.BLE_ExcursionId = datos.BLE_ExcursionId;
            vCOMBLO_Comprar.excursiones = datos.EXC_Nombre;
           // vCOMBLO_Comprar.BLE_BloqueoID = datos.BLE_BloqueoID;

        }
        return vCOMBLO_Comprar;
    }
    // fin select para sacar ver, delete 

////////////// HERE I SHOW MY CODE OF CONTROLLER /////////////////

    public ActionResult Comprar(int? id)
    {
        CompraBloViewModel combloqueosVM = new CompraBloViewModel();
        ComprarBloqueosBusqueda comprarbloqueos = combloqueosVM.BuscaPorNombre(id);
        return View(comprarbloqueos);
    }

/////////////////////////////////////

enter the description of the image here

In my view I want to leave several excursions, but in my case I have only a few excursions, I only get a trip, as I can select with linq so that I can go on several excursions.

    
asked by Michael Peñaloza Aguirre 25.08.2017 в 22:09
source

1 answer

0

If you want several results you must use a generic list that contains the list of objects you wish to return, and in each iteration of the foreach you must add a new instance of the BuyBlocks object in the list to this list.

public List<ComprarBloqueosBusqueda> BuscaPorNombre(int? id ) 
{ 
    var vCOMBLO_Comprar = new List<ComprarBloqueosBusqueda>(); 

    var query2 = (from BloExc in contexto.BloqueoExcursion
    join Exc in contexto.Excursion on BloExc.BLE_ExcursionId equals Exc.ExcursionesId
    where Exc.ExcursionesId == BloExc.BLE_ExcursionId && BloExc.BLE_BloqueoID == id
    select new
                  {
                    //haciendo select para bloqueo excursion                                
                      BLE_ExcursionId = BloExc.BLE_ExcursionId,
                      EXC_Nombre = Exc.EXC_Nombre,
                  }); //.Take(1000);

    var lComBloquepsNom = query2.ToList();
    foreach (var datos in lComBloquepsNom)
    {
        vCOMBLO_Comprar.Add( new ComprarBloqueosBusqueda 
            {
                BLE_ExcursionId = datos.BLE_ExcursionId,
                excursiones = datos.EXC_Nombre 
            } );
    }
    return vCOMBLO_Comprar;
}
// fin select para sacar ver, delete 
    
answered by 25.08.2017 в 22:22