我有一份我在会话中保留的信息列表。想要LINQ加入此列表和数据库表。
结果即将重置,没有。我做错了什么?
列表类别:
public class ASOProcedimentoTemp
{
public int FuncionarioID { get; set; }
public int ProcedimentoID { get; set; }
}
表数据库类:
public class ASOProcedimento : IEntidadeBase
{
[Key]
public int ASOProcedimentoID { get; set; }
public int ASOID { get; set; }
[ForeignKey("ASOID")]
public virtual ASO ASO { get; set; }
public int ProcedimentoID { get; set; }
[ForeignKey("ProcedimentoID")]
public virtual Procedimento Procedimento { get; set; }
public DateTime DtProcedimento { get; set; }
}
我的LINQ:
var dadosTemp = HttpContext.Current.Session["ASOProcedimentoTemp"] as List<ASOProcedimentoTemp>;
if (dadosTemp == null)
dadosTemp = new List<ASOProcedimentoTemp>();
result =
(from a in dados.AsQueryable()
join b in dadosTemp on a.ProcedimentoID equals b.ProcedimentoID
select new
{
a.ProcedimentoID,
a.Procedimento.Descricao
})
.Where(where, filtro)
.OrderBy(orderna + " " + ordenaTipo);
答案 0 :(得分:1)
Contains将在sql调用中导致带有ID的SQL Where In子句。
var dadosTemp = HttpContext.Current.Session["ASOProcedimentoTemp"] as List<ASOProcedimentoTemp>;
if (dadosTemp == null)
dadosTemp = new List<ASOProcedimentoTemp>();
var procedimentoIDs = dadosTemp.Select(a => a.ProcedimentoID).ToList();
result =
(from a in dados
where procedimentoIDs.Contains(a.ProcedimentoID)
select new
{
a.ProcedimentoID,
a.Procedimento.Descricao
});