使用用户定义的参数调用存储过程
本文关键字:参数 调用 存储过程 定义 用户 | 更新日期: 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();