我使用此代码:
using (var unitOfWork = this.unitOfWorkFactory.Create())
{
var tagParam = new SqlParameter
{
ParameterName = "@tagList",
SqlDbType = System.Data.SqlDbType.Structured,
Value = tags.ToTVP(),
TypeName = "[dbo].[TagList]"
};
unitOfWork.Context.Database.ExecuteSqlCommand("exec sp_InsertTagList @tagList", tagParam);
// unitOfWork.Context.Database.ExecuteSqlCommand("INSERT INTO dbo.Tags SELECT Name FROM @tagList", tagParam);
}
ToTvp
只是一种扩展方法,可以从项目列表中为我生成DataTable
。
我收到此错误:
测试方法InspiredBlog.UnitTests.UnitTest1.TestMethod1扔了 exception:System.Data.SqlClient.SqlException:Column,parameter或 变量@tagList。 :找不到数据类型dbo.TagList。
我在我的数据库中创建了表类型。
CREATE TYPE TagList AS TABLE
(
Name VARCHAR(MAX)
)
GO
我不知道为什么会出现这个错误!
我可以轻松创建SQL查询并在SSMS中执行