[英]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.