使用用户定义的参数调用存储过程

本文关键字:参数 调用 存储过程 定义 用户 | 更新日期: 2023-09-27 18:21:50

是否可以用参数B调用过程A,参数B是用户定义的表类型?

CREATE PROCEDURE A
(
    @MyTable B READONLY
)
AS
BEGIN
   SELECT * FROM C;
END
CREATE TYPE B AS TABLE 
(
   ID int, 
   PRIMARY KEY (ID)
)

EF-6是我使用的版本。

使用用户定义的参数调用存储过程

要执行存储过程,可以使用SqlQuery<T>;要传递表值参数,可以使用DataTable

var dt = new DataTable();
dt.Columns.Add("ID");
dt.Rows.Add(new object[]{ 1 });
dt.Rows.Add(new object[]{ 2 });
dt.Rows.Add(new object[]{ 3 });
var sqlParam = new SqlParameter("MyTable", dt){ TypeName = "B" };
var query = db.Database.SqlQuery<CModel>("A @MyTable", sqlParam);
var cmodels = query.ToList();