簡體   English   中英

查詢SQL到Lambda表達式

[英]Query SQL to Lambda Expression

希望您能幫到我。

我想使用C#中的lambda表達式從SQL轉換此查詢:

select  
    a.Descripcion 
from 
    pb.MantenimientosTipos a
where 
    a.activo = 1 and
    a.idSegmento in (select b.idSegmento 
                     from pb.MaquinasRelSegm b 
                     where b.idMaquina = 67)

我怎樣才能做到這一點?

我有兩個selectList,“ a”和“ b”,selectList“ a”是來自表b的按參數篩選的列表,而selectList“ b”是來自表b的按SelectList“ a”篩選的列表

private SelectList a (bool agregarTodo = false)
{
    var segmentos = pb.MaquinasRelSegm.Where(x => x.idMaquina == MaquinaId).Select(x => x.Segmentos).ToList();

    if (agregarTodo)
    {
        segmentos.Add(new PB.Domain.Entities.Segmentos { idSegmento = 0, Descripcion = "Todos" });
    }

    return new SelectList(segmentos, "idSegmento", "Descripcion");
}       

private SelectList b (byte idSegmento, bool agregarTodo = false)
{
    var tipos = pb.MantenimientosTipos.Where(x => x.idSegmento == idSegmento && x.Activo).ToList();
    if (agregarTodo)
    {
        tipos.Insert(0, new PB.Domain.Entities.MantenimientosTipos { idTipoMTTO = 0, Descripcion = "Todo" });
    }

    return new SelectList(tipos, "idTipoMTTO", "Descripcion")
}

我只想在此SQL查詢中放入一個selectList

這是SQL SERVER https://drive.google.com/file/d/0BzpCEYwGGpogRGRaOVNXTDBrTWc/view?usp=sharing中的關系

感謝您的圖表。

嘗試使用它(假設pb是EF上下文):

var segmentoIds = pb.MaquinasRelSegm
    .Where(a => a.idMaquina == 67)
    .Select(a => a.idSegmento)
    .ToList();

var description = pb.MantenimientosTipos
    .Where(a => a.Activo && segmentoIds.Contains(a.idSegmento))
    .Select(a => a.Description);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM