Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Passaggio di array di int a T-SQL stored proc tramite il framework di entità

Questo è il modo in cui chiamo la procedura memorizzata con il parametro con valore di tabella. La differenza principale è che utilizzo una DataTable parametro.

Ricordo di aver avuto problemi con le associazioni dei nomi dei parametri, ma non ricordo esattamente cosa fossero. Questo spiega la modifica che ho apportato alla sintassi della chiamata di procedura. So che questo dovrebbe funzionare.

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();