Возвратите ошибку типа, когда я получаю JSON как результат при вызове хранимой процедуры с использованием структуры сущности - PullRequest
0 голосов
/ 08 мая 2019

Я пытался получить выходные данные, вызывая хранимую процедуру, чтобы получить тип результата в формате JSON, вызывая API. Я использовал Entity Framework, и для получения значений было выполнено сопоставление. Но я получаю сообщение об ошибке.

Я использую Visual Studio 2019 (Entity Framework 6, WEB API 2 с использованием объекта), SQL Server 2017

[HttpGet]
[Route("api/display_specifications/test/{tid}")]           
public string GetUsers(int tid)
{
  using (projectEntities users = new projectEntities())
  {
    return users.get_dynamicform(tid).FirstOrDefault();
  }
}

ОЖИДАЕМЫЙ ВЫХОД:

{"field_id":1,"button_id":1,"label_name":"Full_Name","datatype":1,"ranges":60,"default_value":"null","field_width":20,"field_height":100,"label_width":10,
"rownumber":1,"sequence":1,"visibility":1,"placeholder":"Enter Full Name"}

ОШИБКА:

Параметр типа 'System.String' в ExecuteFunction несовместим с типом 'testingModel.get_dynamicform_Result', возвращаемым функцией для json

1 Ответ

0 голосов
/ 08 мая 2019

В EF определена хранимая процедура за get_dynamicform для возврата типа get_dynamicform_Result, что означает, что она возвращает коллекцию. Использование FirstOrDefault означает, что у вас будет ноль или один экземпляр get_dynamicform_Result.

Но GetUsers говорит, что возвращает строку, и преобразование из get_dynamicform_Result в string.

не существует.

Возможно, вы хотите вернуть свойство члена get_dynamicform_Result, а не весь объект (но без определения get_dynamicform_Result мы не можем быть более конкретным). А также вам нужно обработать нулевой регистр.

...