sql >> Databasteknik >  >> RDS >> Sqlserver

Överför array av ints till T-SQL lagrad proc via entity framework

Det är så jag kallar lagrad procedur med tabellvärderad parameter. Den största skillnaden är att jag använder en DataTable parameter.

Jag minns att jag hade problem med parameternamnbindningar, men jag kommer inte ihåg exakt vad de var. Detta förklarar ändringen jag gjorde i syntaxen för proceduranropet. Jag vet att den här borde fungera.

var dataTable = new DataTable();
dataTable.TableName = "dbo.IntsTTV";
dataTable.Columns.Add("Id", typeof(int));
dataTable.Rows.Add(1); // Id of '1' is valid for the Person table

SqlParameter parameter = new SqlParameter("UserIds", SqlDbType.Structured);
parameter.TypeName = dataTable.TableName;
parameter.Value = dataTable;

var res = _db.Database.SqlQuery<string>("EXEC GetUsers @UserIds", parameter).ToList();


  1. DBaaS, moln och transparent frågedirigering

  2. Uppdatera uttalande med inre koppling på Oracle

  3. Hur kan jag välja från värdelistan i Oracle

  4. Databasalternativ/paketanvändningsrapportering