Devo eseguire un comando sql su ef core 1.1.2:
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
});
Genera l'eccezione:
Qual è il modo corretto per utilizzare i parametri con ef core?
Modifica (soluzione): il problema era il modo in cui ho dichiarato i parametri e fornito loro i valori. Se utilizzo questo modulo funziona:
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};