No se puede obtener el tipo largo de datos usando Dapper

.net c# dapper oracle sql

Pregunta

El problema: no puedo recuperar una columna de tipo Long en un origen de Oracle DB y configurarla en una propiedad de cadena en una clase en .Net

Detalles: Al tratar de utilizar Dapper para lanzar consultas SQL y obtener resultados, encontré una situación bastante extraña. No puedo compartir los detalles de clase reales, pero aquí hay una muestra. Tengo una clase:

public class MyClass
{
    public string VeryLongMessage { get; set; }
}

Lanzo una consulta apresurada como se muestra a continuación:

using (var con = ConnectionUtility.GetConnection("MyConnectionString"))
{
    var result = con.QueryAsync<MyClass>("SELECT VeryLongMessage FROM MyView");
}

Pero cuando verifico el valor en el resultado, obtengo un valor nulo dentro de la propiedad VeryLongMessage del resultado.

¿Alguien más ha visto un problema así? ¿Alguna idea o sugerencia?

Cosas que he verificado: coinciden el nombre de la columna de mi consulta y la propiedad. el tipo de propiedad es cadena y columna en la vista de Oracle db es Larga.

Avíseme en caso de que necesite más detalles.

Respuesta popular

Mira la apurada cuestión 173

Lamentablemente, parece que hay cuatro formas indirectas:

  • arreglar la base de datos (en tu caso no puedes)

  • agregue finción almacenada adicional para recuperar LONG como CLOB. Leer Long to Varchar2 conversion ... y encontrar temas similares en AskTom

  • arreglar el apuesto :)

  • use ADO.NET en su lugar



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué