Ho il seguente problema. Sto usando Dapper per connettermi a un database, il campo che è un varchar nel database è un enum nel mio oggetto. Non c'è alcun problema per Dapper per mappare l'oggetto del database sul mio DTO se l'enum ha lo stesso nome della stringa nel database. Sfortunatamente, le stringhe nel database non sono molto user-friendly e mi chiedevo se c'è un modo per mapparle o convertire (solo enumerazioni) per usare più versioni user-friendly. Ad esempio, il valore del database per un campo:
SomeVeIRdLooking_Value
E mi piacerebbe mappare a:
public enum MyEnum {
MyFormattedValue
}
È possibile selezionare i valori stringa dal database e convertirli a mano.
public enum MyEnum
{
None,
Success,
Failure
}
var enums = connection.Query<string>("select 'None' union select 'Success' union select 'Failure'")
.Select(x => Enum.Parse(typeof (MyEnum), x)) //use your own method to parse enum from string
.ToList();