Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将存储过程输出从dapper.net转换为列表_C#_Dapper - Fatal编程技术网

C# 将存储过程输出从dapper.net转换为列表

C# 将存储过程输出从dapper.net转换为列表,c#,dapper,C#,Dapper,我是Dapper.net的新手,我正在尝试使用Dapper.net执行一个存储过程 我有一个模型类,与存储过程的输出相关 public StoredProcedureResult { public string Name { get; set; } public string Address { get; set; } public string PhoneNumber { get; set; } } conn.Query(SP_name, Param(s), Type

我是Dapper.net的新手,我正在尝试使用Dapper.net执行一个存储过程

我有一个模型类,与存储过程的输出相关

public StoredProcedureResult
{
    public string Name { get; set; }
    public string Address { get; set; }
    public string PhoneNumber { get; set; }
}

conn.Query(SP_name, Param(s), Type). 
模型的输出是动态检索的

执行后,我得到以下结果

{{Dapper,Name='Pradeep',Address='UK',PhoneNumber='+4478923984'}}
{{Dapper,Name='Jack',Address='USA',PhoneNumber='+447242344234}}
{{Dapper,Name='Ram',Address='UK',PhoneNumber='+447892423484'}}
我需要在
列表
结构中转换动态输出

经过几次搜索,我找到了这个代码

conn.Query<*Model_name*>(SP_name, Param(s), Type). 
conn.Query(SP_名称、参数、类型)。
不幸的是,这返回了正确的行数,但行是空的。如何将输出转换为
列表


谢谢

调用查询时,您需要指定数据的返回类型。您所拥有的就是您将预期回报类型-。在您的示例中,您将以dapper的内部动态dapperrow类型获取数据

        // Gets results in dapper's DapperRow type. This is what you're getting now. 
        var results = _connection.Query("SP_name", commandType: CommandType.StoredProcedure);
下面的示例显示以您实际需要的命名类型返回结果

        //Gets results in your type. Note we tell dapper we want it turned into StoredProcedureResults.
        List<StoredProcedureResult> castResults;
        castResults = _connection.Query<StoredProcedureResult>("SP_name", commandType: CommandType.StoredProcedure).ToList();
//在您的类型中获取结果。注意:我们告诉dapper我们希望它变成StoredProcedureResults。
列出结果;
castResults=_connection.Query(“SP_name”,commandType:commandType.StoredProcedure.ToList();

这是一个关于整洁的问题。删除了与Sql server和存储过程无关的标记。在过程调用中是否获得任何输出?感觉问题在于您没有返回任何行,否则使用输出创建列表应该不是问题。我从SSMS执行了SP,从中获得了结果。当我从Dapper执行相同的SP时,我会得到上面提到的输出({Dapperrow…在上面)。但是,当我尝试添加一个模型而不是动态时,我无法捕获行中的值。我试图将SP输出转换为列表或类似的东西。Thansk G Davison。它起作用了,我能够得到我自己定义的模型输出。