0

我试图通过调用存储过程来获取输出,以通过调用 API 来获取 JSON 格式的结果类型。我使用了实体框架并完成了映射来获取值。但是我得到了错误。

我正在使用 Visual Studio 2019(实体框架 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"}

错误:

ExecuteFunction 中的类型参数“System.String”与 json 函数返回的类型“testingModel.get_dynamicform_Result”不兼容

4

1 回答 1

0

在 EF 中,后面的存储过程get_dynamicform被定义为返回类型get_dynamicform_Result,这意味着它返回一个集合。的使用FirstOrDefault意味着您将拥有零个或一个get_dynamicform_Result.

但是GetUsers说它返回一个字符串,并且不存在从get_dynamicform_Resultto 的转换string

您可能希望返回一个成员属性get_dynamicform_Result而不是整个对象(但如果没有get_dynamicform_Result我们不能更具体的定义)。而且您还需要处理 null 情况。

于 2019-05-08T07:27:53.210 回答