2017-10-02 2 views
-1

BKG_AOR_CHANGE_SK est rempli à partir d'un déclencheur de base de données lorsque la ligne est insérée. J'ai besoin de récupérer cette valeur dans le cadre de mon insertion. Comment ferais-je cela? J'ai essayé ceci afin de l'obtenir comme un paramètre de sortie, mais il ne retourne pas la valeur.J'ai besoin de la valeur de retour de dapper execute insert

public BKG_AOR_CHANGE BKG_AOR_CHANGE_Create(BKG_AOR_CHANGE dto) 
    { 
     try 
     { 
      var parameters = new DynamicParameters(); 

      parameters.Add(name: "MEMBER_ORIG_EFF_DT", value: dto.MEMBER_ORIG_EFF_DT, direction: ParameterDirection.Input); 
      parameters.Add(name: "MEMBER_ID", value: dto.MEMBER_ID, direction: ParameterDirection.Input); 
      parameters.Add(name: "MEMBER_NAME", value: dto.MEMBER_NAME, direction: ParameterDirection.Input); 
      parameters.Add(name: "CUSTOMER_TYPE", value: dto.CUSTOMER_TYPE, direction: ParameterDirection.Input); 
      parameters.Add(name: "CURR_AGENT_ID", value: dto.CURR_AGENT_ID, direction: ParameterDirection.Input); 
      parameters.Add(name: "CURR_AGENT_NAME", value: dto.CURR_AGENT_NAME, direction: ParameterDirection.Input); 
      parameters.Add(name: "CURR_AGENCY_ID", value: dto.CURR_AGENCY_ID, direction: ParameterDirection.Input); 
      parameters.Add(name: "BKG_AOR_CHANGE_SK", direction: ParameterDirection.Output, size: 31); 

      var sql = @"INSERT 
          INTO DS_BROKERAGE.BKG_AOR_CHANGE 
           (
           MEMBER_ORIG_EFF_DT, 
           MEMBER_ID, 
           MEMBER_NAME, 
           CUSTOMER_TYPE, 
           CURR_AGENT_ID, 
           CURR_AGENT_NAME, 
           CURR_AGENCY_ID, 
          ) 
           VALUES 
           (
           :MEMBER_ORIG_EFF_DT, 
           :MEMBER_ID, 
           :MEMBER_NAME, 
           :CUSTOMER_TYPE, 
           :CURR_AGENT_ID, 
           :CURR_AGENT_NAME, 
           :CURR_AGENCY_ID, 
          )"; 
      this._db.Execute(sql, parameters); 

      dto.BKG_AOR_CHANGE_SK = parameters.Get<int>("BKG_AOR_CHANGE_SK"); 

      return dto; 
     } 
     catch (Exception e) 
     { 
      throw e; 
     } 
    } 

Répondre

0

Ahh, regarde comme je manque juste la déclaration de retour

public BKG_AOR_CHANGE BKG_AOR_CHANGE_Create(BKG_AOR_CHANGE dto) 
    { 
     try 
     { 
      var parameters = new DynamicParameters(); 

      parameters.Add(name: "MEMBER_ORIG_EFF_DT", value: dto.MEMBER_ORIG_EFF_DT, direction: ParameterDirection.Input); 
      parameters.Add(name: "MEMBER_ID", value: dto.MEMBER_ID, direction: ParameterDirection.Input); 
      parameters.Add(name: "MEMBER_NAME", value: dto.MEMBER_NAME, direction: ParameterDirection.Input); 
      parameters.Add(name: "CUSTOMER_TYPE", value: dto.CUSTOMER_TYPE, direction: ParameterDirection.Input); 
      parameters.Add(name: "CURR_AGENT_ID", value: dto.CURR_AGENT_ID, direction: ParameterDirection.Input); 
      parameters.Add(name: "CURR_AGENT_NAME", value: dto.CURR_AGENT_NAME, direction: ParameterDirection.Input); 
      parameters.Add(name: "CURR_AGENCY_ID", value: dto.CURR_AGENCY_ID, direction: ParameterDirection.Input); 
      parameters.Add(name: "BKG_AOR_CHANGE_SK", direction: ParameterDirection.Output, size: 31); 

      var sql = @"INSERT 
          INTO DS_BROKERAGE.BKG_AOR_CHANGE 
           (
           MEMBER_ORIG_EFF_DT, 
           MEMBER_ID, 
           MEMBER_NAME, 
           CUSTOMER_TYPE, 
           CURR_AGENT_ID, 
           CURR_AGENT_NAME, 
           CURR_AGENCY_ID, 
          ) 
           VALUES 
           (
           :MEMBER_ORIG_EFF_DT, 
           :MEMBER_ID, 
           :MEMBER_NAME, 
           :CUSTOMER_TYPE, 
           :CURR_AGENT_ID, 
           :CURR_AGENT_NAME, 
           :CURR_AGENCY_ID, 
          ) 
           RETURNING BKG_AOR_CHANGE_SK INTO :BKG_AOR_CHANGE_SK"; 

      this._db.Execute(sql, parameters); 

      dto.BKG_AOR_CHANGE_SK = parameters.Get<int>("BKG_AOR_CHANGE_SK"); 

      return dto; 
     } 
     catch (Exception e) 
     { 
      throw e; 
     } 
    }