检索要添加到返回参数的实体值

时间:2017-11-10 19:49:55

标签: asp.net backend

我有这个方法:

 private List < ReportParameter > ParametrosReporte() {
      List < ReportParameter > Parametros = new List < ReportParameter > ();
      try {
        int ? int_Ejercicio = this.radcmbEjercicio.SelectedItem == null ? 0 : this.radcmbEjercicio.SelectedValue.ToInt();
        int ? int_Periodo = this.radcmbPeriodo.SelectedItem == null ? 0 : this.radcmbPeriodo.SelectedValue.ToInt();
        int ? int_BSC = this.radcmbBSC.SelectedItem == null ? 0 : this.radcmbBSC.SelectedValue.ToInt();

        Parametros.Add(Reportes.ParametrosReporte("pe_Ejercicio", int_Ejercicio.ToString()));
        Parametros.Add(Reportes.ParametrosReporte("pe_Mes", int_Periodo.ToString()));
        Parametros.Add(Reportes.ParametrosReporte("pe_BSC", int_BSC.ToString()));


        catBSC _catBSC = new catBSC() {
          mdUsuarioCaptura = new Entidades.Usuario() {
            UsuarioID = ((Usuario) Session["User"]).UsuarioID,
          }
        };
        Parametros.Add(Reportes.ParametrosReporte("pe_Usuario", UsuarioID ));

        return Parametros;
      } catch (Exception ex) {
        throw new System.ArgumentException("Error en ParametrosReporte", ex);
      }
    }

如您所见,我有逻辑来检索登录的用户:

  catBSC _catBSC = new catBSC() {
              mdUsuarioCaptura = new Entidades.Usuario() {
                UsuarioID = ((Usuario) Session["User"]).UsuarioID,
              }
            };

但在检索之前,我想将其称为Parametros.Add,如:

Parametros.Add(Reportes.ParametrosReporte("pe_Usuario", UsuarioID ));

但我不能因为UsuarioID超出范围而且它会让我失望

  

UsuarioID在当前上下文中不存在

如何调用它并附加到我的Parametros.Add

1 个答案:

答案 0 :(得分:1)

您可以在创建catBSC之上创建一个本地变量,然后在两个位置使用它:

var usuarioID = ((Usuario) Session["User"]).UsuarioID

catBSC _catBSC = new catBSC() {
    mdUsuarioCaptura = new Entidades.Usuario() {
        UsuarioID = usuarioID
    }
};

Parametros.Add(Reportes.ParametrosReporte("pe_Usuario", usuarioID));

您可以将var替换为实际类型,但我不想对您的方案中的内容做出假设。