C# UnitTest报告SQL错误-找不到数据类型

C# UnitTest报告SQL错误-找不到数据类型,c#,sql-server,entity-framework,C#,Sql Server,Entity Framework,我使用以下代码: using (var unitOfWork = this.unitOfWorkFactory.Create()) { var tagParam = new SqlParameter { ParameterName = "@tagList", SqlDbType = System.Data.SqlDbType.Struc

我使用以下代码:

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 异常:System.Data.SqlClient.SqlException:列、参数或 变量@tagList.:找不到数据类型dbo.TagList

我已经在我的数据库中创建了表类型

CREATE TYPE TagList AS TABLE 
(
    Name VARCHAR(MAX)
)
GO
我不知道为什么这个错误又回来了


我可以轻松创建SQL查询并在SSMS中执行

您在数据库中的类型是否具有dbo作用域?是的,dbo.taglist尝试在SSMS中使用您试图从代码传递的参数值执行SP。使用探查器连接到数据库并查看query@PareshJadhav我已经可以在SSMS中执行它了!我来看看剖析器