我是Dapper.net的新手,我正在尝试使用Dapper.Net执行存储过程。
我有一个模型类StoreProcedureResult
,它与存储过程的输出相关。
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'}}
我需要转换List<StoredProcedureResult>
结构中的动态输出。
经过几次搜索,我发现了这段代码
conn.Query<*Model_name*>(SP_name, Param(s), Type).
不幸的是,这会返回正确的行数,但行是空的。如何将输出转换为List<StoredProcedureResult>
。
由于
答案 0 :(得分:4)
调用Query时,需要指定数据的返回类型。你在哪里&lt; 模型名称&gt;是您预期返回类型的地方 - 。在您的示例中,您将数据恢复到精巧的内部动态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();