如何将存储过程单个结果集与单个 class 对象结果绑定?

How do I bind stored procedure single result set with single class object result?

我有一个存储过程 returns 以下结果集:

Id : int
Name : string
Image : string
Address : string

代码:

public class SPResultSet
{
       public int Id { get; set; }
       public string Name { get; set; }
       public string Image { get; set; }
       //other additional properties
} 

var data = ctx.Database
              .SqlQuery<SPResultSet>("[dbo].[GET_Data] params", sqlParameters)
              .FirstOrDefault();

错误:

System.ArgumentException: 'No mapping exists from object type System.Collections.Generic.List`1[[System.Data.SqlClient.SqlParameter, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] to a known managed provider native type.'

如何将存储过程的单个结果集与单个 class 对象结果绑定?

注意:存储过程returns只有1行数据。

您不应将参数作为列表传递,而应将每个参数传递给存储过程。

或者在您的情况下它可以作为 sqlParameters.ToArray() 传递。

注意: 如果您提供完整的代码以及您传递的参数和存储过程,那就太好了。