sql >> Database >  >> RDS >> Sqlserver

Array van ints doorgeven aan T-SQL opgeslagen proc via entiteitsframework

Dit is hoe ik een opgeslagen procedure noem met een tabelwaardeparameter. Het belangrijkste verschil is dat ik een DataTable . gebruik parameter.

Ik herinner me dat ik problemen had met parameternaambindingen, maar ik weet niet meer precies wat ze waren. Dit verklaart de wijziging die ik heb aangebracht in de syntaxis van de procedureaanroep. Ik weet dat deze zou moeten werken.

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. Waarom rondt SQL Server de resultaten af ​​van het delen van twee gehele getallen?

  2. Retourneer alleen de numerieke waarden uit een PostgreSQL-databasekolom

  3. Een tekenreeks in omgekeerde volgorde retourneren met SQL Server - REVERSE()

  4. utl_file.fopen Parameters in Oracle