これは、テーブル値パラメーターを使用してストアドプロシージャを呼び出す方法です。主な違いは、DataTable
を使用していることです パラメータ。
パラメータ名のバインドに問題があったことを覚えていますが、それらが何であったかを正確に覚えていません。これは、プロシージャ呼び出しの構文に加えた変更を説明しています。これは機能するはずです。
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();