是否可以使用参数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是我使用的版本。
答案 0 :(得分:3)
要执行存储过程,您可以使用SqlQuery<T>
并传递table-valued parameter,您可以使用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();