Mappage du modèle Dapper

.net c# dapper data-mapping

Question

J'ai joué avec Dapper et j'ai une question. Y a-t-il un moyen pour moi d'avoir une propriété de type énumérateur dans ma classe POCO et d'utiliser Dapper? Il semble que chaque fois que j'ajoute une propriété de type Enumerator, j'obtiens l'exception suivante:

System.NotSupportedException: Le type: * my_enum_type * n'est pas pris en charge par dapper

Est-ce que j'ai râté quelque chose? Existe-t-il un attribut que je peux attacher à ces propriétés pour spécifier celles qui correspondent aux colonnes de la table de base de données?

Réponse populaire

Ceci est un vieux bogue dans dapper, assurez-vous d'utiliser la dernière version. Dapper n'effectuait aucun filtrage sur les propriétés des types d'entrée.

Ok je l'ai compris et c'était de ma faute si je ne l'avais pas vu à la 1ère place. C'est ce que je faisais au départ:

Dim result = conn.Query("SELECT * FROM Users WHERE UserID = @UserID", New User With {.UserID = userID})

Mais ce qu'il fallait faire, c'est:

Dim result = conn.Query("SELECT * FROM Users WHERE UserID = @UserID", New With {.UserID = userID})

En d'autres termes, déclarer param comme type anonyme est essentiel. Si vous déclarez param comme un type spécifique et que ce type contient une propriété de type qui n'est pas couverte par le code Dapper (tel qu'Enum), le code se bloque avec l'erreur mentionnée ci-dessus. Ma classe Utilisateur avait une propriété de type Enum et cela posait problème.




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