C# 将存储过程输出从dapper.net转换为列表
我是Dapper.net的新手,我正在尝试使用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
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。它起作用了,我能够得到我自己定义的模型输出。