Dapper: Conversion d'une chaîne en enum

.net c# dapper

Question

Je suis nouveau sur Dapper et j'essaie de savoir s'il peut gérer les chaînes de bases de données de mappage aux énumérations; cela n'arrive pas pour moi par défaut.

Par exemple, disons que j'utilise ce SQL

select customer_type from customers

et cette classe

public class Customer
{
    ...
    public CustomerType CustomerType { get; set; }
    ...
}

avec cette enum

public enum CustomerType
{
     Unknown,
     SomeCustomerType,
     ...
}

Dans ce cas, je me retrouve toujours avec la valeur enum par défaut (Inconnu) plutôt qu'un mappage de la valeur de chaîne de la base de données.

Quelqu'un sait comment je peux y arriver?

Edit: Je sais que cela est possible avec un champ numérique car un nombre sera converti en enum, mais cela a l'inconvénient de devoir s'assurer que l'ID et l'énum de base de données sont synchronisés. Je cherche quelque chose de similaire mais avec de la ficelle.

Réponse populaire

Si vous alias le nom de la colonne pour avoir le même nom que votre propriété, cela devrait également fonctionner:

SELECT REPLACE(customer_type, ' ','') As CustomerType FROM customers

Vous pouvez également utiliser la fonction replace pour supprimer les espaces blancs si les valeurs du champ customer_type de la base de données en contiennent.




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