Ich rufe die Dapper erweiterte Funktion Query
für die IDbConnection
Klasse. Das Problem ist, dass einige der zurückgegebenen Werte NULL
in der Datenbank sind. Es beschwert sich ständig über sie, daher habe ich die Mitglieder meiner Rückgabeklasse in NULL-fähige Typen umgewandelt. Aber ich denke, dass ich das für fast jedes Mitglied tun kann, weil die Daten oft unvollständig sind. Dies wird von älterem Code geändert, der die DataRow
Klasse verwendet und in der Lage ist, string
ToString
meiner DataRow
leere Werte zuzuweisen, ohne Probleme mit ToString
.
public class ProductInfo
{
public Char Department { get; set; }
}
Das funktioniert:
ProductInfo myProduct = new ProductInfo{};
myProduct.Department = dataRow["department"].ToString();
dataRow["department"]
wird als {}
und myProduct.Department
als ""
myProduct.Department
.
Dies gibt eine Ausnahme:
List<ProductInfo> myProduct = new List<ProductInfo>();
myProduct = dbConnection.Query<ProductInfo>(command, parameters).ToList();
Mit dem Fehler: Error parsing column 1 (department=<null>) Details: System.ArgumentNullException: Value cannot be null
Fehle ich einen Schritt in dem Prozess, den Dapper verwendet, um Werte zuzuweisen? Oder ist eine umfangreiche Verwendung von NULL-fähigen Typen gängiger Praxis damit?
Dies ist keine Einschränkung bei Dapper; So wird Ihr Modell eingerichtet.
Ein char
Typ kann nicht nulliert werden.
Ändern Sie Ihr Modell in char?
um es nullfähig zu machen.