简体   繁体   English

将 OracleRefCursor 转换为自定义 C# 对象列表

[英]Convert an OracleRefCursor to a List of custom C# Objects

I have a Dapper statement that returns an OracleRefCursor:我有一个返回 OracleRefCursor 的 Dapper 语句:

try
{
    using (IDbConnection connection = Connection)
    {
        var parameters = new OracleDynamicParameters();
        parameters.Add("refCursorReturn", null, OracleMappingType.RefCursor, ParameterDirection.Output);
        IEnumerable<OracleRefCursor> temp = connection.Query<OracleRefCursor>("MySchema.MyStoredProc", parameters, commandType: CommandType.StoredProcedure);

        //I need to convert the OracleRefCursor to an IEnumerable or List of MyObject

        return IEnumerable<MyObject>;
    }
}
catch (Exception e)
{
    Console.WriteLine(e);
    throw;
}

I can't find any documentation online about how to convert an OracleRefCursor to anything I can use.我在网上找不到任何关于如何将 OracleRefCursor 转换为我可以使用的任何文件的文档。

One way is (if ok with NOT using strong type like OracleRefCursor), then can use:一种方法是(如果可以不使用像 OracleRefCursor 这样的强类型),那么可以使用:

 IEnumerable<dynamic> temp = null;

 temp = connection.Query<dynamic>("MySchema.MyStoredProc", parameters, commandType: CommandType.StoredProcedure);

foreach (var dataRow in temp)
{
     var fields = dataRow as IDictionary<string, object>;
     // do something with fields. (store in datatable, list etc).
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM