При использовании динамического в c # имена столбцов возвращаются из первых таблиц вместо второй таблицы - PullRequest
0 голосов
/ 09 апреля 2019

В oracle есть хранимая процедура, которая возвращает данные таблицы на основе значения (имени таблицы).Он работает нормально, но в одном из немногих случаев, если я передам tableName1, он даст правильные данные, а во второй раз tableName2, он даст правильные данные, но со столбцами tableName1.

Что-то не так с моим кодом или кеширование сайтов динамических вызовов?

Когда я тестировал хранимую процедуру из Toad с тем же экземпляром, он возвращает правильные данные с правильными заголовками.

Рассмотрим каждый метод на отдельном уровне (контроллер> Бизнес> Уровень данных).

   //controller
   [AcceptVerbs("Get")]        
    public IHttpActionResult GetTableData(string tableName)    
    {
          return Ok(GetTableData(tableName));
    }

     //business layer
    public IList<dynamic> GetTableData(string tableName)
    {
         //using petaPoco ORM
         IList<dynamic> result = GetData<dynamic>GetData("StoredProc_NAME",new {sp_param_tableName = tableName});
         return result;
    }

    //data layer
    List<TEntity> GetData<TEntity>(string sqlScript, params object[] param)
    {
         using (PetaPoco.Database PpDBObject= GetPetaPocoDatabaseObject())
         {
             return PpDBObject.Fetch<TEntity>(sqlScript, param);
         }
    }
...