Ich habe ein Problem beim Übergeben von Nullen an eine ExecuteCommand() -Methode mit linq. Mein Code ist ähnlich dem, der folgt:Linq ExecuteCommand versteht Nullwerte nicht
public void InsertCostumer(string name, int age, string address)
{
List<object> myList = new List<object>();
myList.Add(name);
myList.Add(age);
myList.Add(address);
StringBuilder queryInsert = new StringBuilder();
queryInsert.Append("insert into Customers(name, address) values ({0}, {1}, {2})");
this.myDataContext.ExecuteCommand(queryInsert.ToString(), myList.ToArray());
}
Aber, wenn ein Parameter null ist (Adresse, zum Beispiel), erhalte ich folgende Fehlermeldung: „Eine Abfrage-Parameter nicht vom Typ sein kann‚System.Object‘ . "
Der Fehler tritt nicht auf, wenn keine Parameter null sind. Ich weiß, dass das Design in meinem Beispiel etwas schlecht ist. Ich habe ein vereinfachtes Beispiel erstellt, um mich auf das Problem zu konzentrieren. Irgendwelche Vorschläge?
7 Jahre später. Nichts hat sich geändert. Arghhhh Microsoft! – dzendras
Dies ist seltsam, wie [MSDN explizit sagt] (https://msdn.microsoft.com/en-us/library/system.data.linq.datacontext.executecommand (v = vs.110) .aspx), dass es behandelt Nullen –