Ich bin neu bei Dapper und ich versuche herauszufinden, ob es Mapping-Datenbank-Strings zu Enums umgehen kann; das passiert mir standardmäßig nicht.
Angenommen, ich verwende diese SQL
select customer_type from customers
und diese Klasse
public class Customer
{
...
public CustomerType CustomerType { get; set; }
...
}
mit dieser enum
public enum CustomerType
{
Unknown,
SomeCustomerType,
...
}
In diesem Fall habe ich immer den Standard-Enum-Wert (Unknown) und nicht eine Zuordnung des String-Wertes aus der Datenbank.
Weiß jemand, wie ich das erreichen kann?
Edit: Ich weiß, dass dies mit einem Zahlenfeld möglich ist, weil eine Zahl in eine Enum konvertiert wird, aber das hat den Nachteil, dass die Datenbank-ID und die Enumeration synchron gehalten werden müssen. Ich suche nach etwas ähnlichem aber mit Schnur.
Wenn Sie dem Spaltennamen den gleichen Namen geben wie Ihrer Property, sollte das auch funktionieren:
SELECT REPLACE(customer_type, ' ','') As CustomerType FROM customers
Sie können auch die Funktion zum Ersetzen verwenden, um Leerstellen zu entfernen, falls die Werte für das Feld customer_type in der Datenbank vorhanden sind.