sql >> Databáze >  >> RDS >> Sqlserver

Předávání pole ints do T-SQL uloženého procesu prostřednictvím entity framework

Takto volám uloženou proceduru s parametrem s hodnotou tabulky. Hlavní rozdíl je v tom, že používám DataTable parametr.

Pamatuji si, že jsem měl problémy s vazbami názvů parametrů, ale přesně si nepamatuji, jaké to byly. To vysvětluje změnu, kterou jsem provedl v syntaxi volání procedury. Vím, že tohle by mělo fungovat.

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. ORACLE Connect by klauzule ekvivalentní v SQL Server

  2. Co je NoSQL a jak se používá?

  3. Vytvořte Computed Column v SQL Server pomocí T-SQL

  4. Zábava s kompresí (columnstore) na velmi velkém stole – část 2