Impossible d'obtenir un type de données long à l'aide de Dapper

.net c# dapper oracle sql

Question

Le problème: je ne parviens pas à récupérer une colonne de type Long dans une source de base de données Oracle et à définir une propriété de chaîne dans une classe dans .Net.

Détails: En essayant d'utiliser dapper pour lancer des requêtes SQL et obtenir des résultats, je suis tombé sur une situation assez étrange. Je ne peux pas partager les détails de la classe, mais voici un exemple. J'ai un cours:

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

Je lance une requête dapper comme indiqué ci-dessous:

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

Mais lorsque je vérifie la valeur dans result, j'obtiens une valeur nulle dans la propriété VeryLongMessage du résultat.

Quelqu'un a-t-il déjà vu un tel problème? Des idées ou des suggestions?

Choses que j'ai vérifiées: Le nom de la colonne de ma requête Dapper et la propriété correspondent. le type de propriété est string et la colonne dans la vue Oracle db est Long.

Faites-moi savoir si vous avez besoin de plus de détails.

Réponse populaire

Regardez le numéro 173

Malheureusement, il semble y avoir quatre moyens indirects:

  • fixer la base de données (dans votre cas, vous ne pouvez pas)

  • Ajouter une finction stockée supplémentaire pour récupérer LONG comme CLOB. Lire Long to Varchar2 conversion .. et trouver des sujets similaires sur AskTom

  • réparer le dapper :)

  • utilisez plutôt ADO.NET




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi