Ich bin neu bei Dapper und ich versuche herauszufinden, ob es Mapping-Datenbank-Strings auf Enums behandeln kann; das passiert mir standardmäßig nicht.Dapper: Konvertieren einer Zeichenfolge in ein Enum
Zum Beispiel, sagen, dass ich dieses
SQL verwendenselect customer_type from customers
und diese Klasse
public class Customer
{
...
public CustomerType CustomerType { get; set; }
...
}
mit diesem Enum
public enum CustomerType
{
Unknown,
SomeCustomerType,
...
}
In diesem Fall habe ich immer am Ende mit dem Standard-Enumeration Wert (Unbekannt) anstelle einer Zuordnung des Zeichenfolgenwerts aus der Datenbank.
Wer weiß, wie ich das erreichen kann?
Edit: Ich weiß, dass dies mit einem Nummernfeld möglich ist, weil eine Zahl in eine Enum konvertieren wird, aber das hat den Nachteil, sicherzustellen, dass die Datenbank-ID und enum synchron gehalten werden. Ich suche nach etwas ähnlichem aber mit Schnur.
danke, aber ich sah diese Antwort bereits. Es ist wirklich nur eine Arbeit. Ich hätte lieber keine Schatteneigenschaft für jede Enum-Eigenschaft, die ich habe, erstellt. – johnB
Warum nicht einfach eine numerische Spalte in der Datenbank verwenden? Es ist so einfach, sie synchron zu halten, als den enum-Werten explizite Werte zu geben (auch wenn sie redundant sind), um zu verhindern, dass sie sich jemals ändern. Das ist auch viel weniger verschwenderisch und leichter auf Konsistenz zu prüfen als eine Saite. – Alejandro
Ich arbeite mit einer großen Codebase und Datenbank, das wäre eine Menge Arbeit. Es hat auch den Nachteil, dass es im Hintergrund versagt, wenn sie nicht mehr synchron sind. – johnB