为了账号安全,请及时绑定邮箱和手机立即绑定

选择 IN LINQ to entity with internal joins

选择 IN LINQ to entity with internal joins

C#
暮色呼如 2021-06-02 17:58:09
我有以下 SQL 查询SELECT ob.PK_OBJETIVO,ev.NM_EVENTO,ifi.QT_NOTA_IMPACTO,imi.QT_NOTA_IMPACTO,ire.QT_NOTA_IMPACTO,(ifi.QT_NOTA_IMPACTO + imi.QT_NOTA_IMPACTO + ire.QT_NOTA_IMPACTO)/3 AS MediaFROM AVALIACAO_IMPACTO AS aiINNER JOIN EVENTO AS EV ON ev.PK_EVENTO = ai.FK_AVALIACAO_IMPACTO_EVENTOINNER JOIN OBJETIVO AS ob ON ob.PK_OBJETIVO = ai.FK_AVALIACAO_IMPACTO_OBJETIVOINNER JOIN IMPACTO_FINANCEIRO AS ifi ON ifi.PK_IMPACTO_FINANCEIRO = ai.FK_AVALIACAO_IMPACTO_IMPACTO1INNER JOIN IMPACTO_MISSAO AS imi ON IMI.PK_IMPACTO_MISSAO = AI.FK_AVALIACAO_IMPACTO_IMPACTO2INNER JOIN IMPACTO_REPUTACAO AS IRE ON IRE.PK_IMPACTO_REPUTACAO = AI.FK_AVALIACAO_IMPACTO_IMPACTO3WHERE ai.FK_AVALIACAO_IMPACTO_OBJETIVO IN(SELECT OBJ.PK_OBJETIVO FROM OBJETIVO AS OBJ WHERE OBJ.FK_OBJETIVO_PROCESSO = 3)我需要在 LINQ 查询中转换该查询,我尝试过:var queryImpactos = await _context.AvaliacaoImpacto        .Where(e => _context.Objetivo.Select(o => o.ProcessoID).Contains(planoRiscos.Auditoria.ProcessoID))        .Include(e => e.Evento).Include(e => e.Objetivo)        .Include(e => e.ImpactoFinanceiro).Include(e => e.ImpactoMissao).Include(e => e.ImpactoReputacao).ToListAsync();" planoRiscos.Auditoria.ProcessoID" 返回它所需要的,纯 SQL 查询的数字 3,但查询结果是返回AVALIACAO_IMPACTO表中的所有记录,但是我只需要表FK_OBJETIVO中AVALIACAO_IMPACTO存在a in的记录OBJETIVO,其中FK_PROCESSOinOBJETIVO等于传递的参数 ( planoRiscos.Auditoria.ProcessoID)。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 109 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信