Ich muss einen SQL-Befehl auf EF Core 1.1.2 ausführen:
var projectParam = new SqlParameter("@projectid", SqlDbType.UniqueIdentifier).Value = inventory.ProjectId;
var locationParam = new SqlParameter("@locationid", SqlDbType.UniqueIdentifier).Value = location.Id;
var scanOrderParam = new SqlParameter("@scanorder", SqlDbType.Int).Value = scanOrder;
_ctx.Database.ExecuteSqlCommand("update Inventories set ScanOrder=ScanOrder+1 where ProjectId = '@projectid' AND LocationId = '@locationid' AND ScanOrder>'@scanorder';",
parameters: new[] {
projectParam, locationParam, scanOrderParam
});
Es löst die Ausnahme aus:
Was ist der richtige Weg, um Parameter mit ef core zu verwenden?
Bearbeiten (Lösung): Das Problem war die Art und Weise, wie ich Parameter deklarierte und ihnen Werte gab. Wenn ich dieses Formular verwende, funktioniert es:
var projectParam = new SqlParameter("@projectid", SqlDbType.UniqueIdentifier);
projectParam.Value = inventory.ProjectId;
var locationParam = new SqlParameter("@locationid", SqlDbType.UniqueIdentifier);
locationParam.Value = location.Id;
var scanOrderParam = new SqlParameter("@scanorder", SqlDbType.Int);
scanOrderParam.Value = scanOrder;
var queryItem = new SqlParameter("@table", SqlDbType.Char) {Value = yourValue};