Dapper - Table-带字符串查询的值参数
Dapper - Table-Valued Parameter with string query
我需要在字符串查询中使用 Table 值参数
我有以下代码
string query = "SELECT * FROM Tabla1 T1 INNER JOIN @listItems T2 ON T2.Id = T1.Id";
var results = sqlConnection.Query(query , new TableValuedParameter<string>("@listItems", "string_list_Type", valuesList));
变量valueList是一个List
执行报错:"Could not find stored procedure"
是否可以在不使用程序的情况下使用 table 值参数?
谢谢
问候
如果没有看到完整的代码示例,很难判断问题出在哪里。考虑一下,它执行得很好:
一、TVP定义
CREATE TYPE [dbo].[TVPSTRING] AS TABLE(
[VALUE] NVARCHAR(MAX) NULL
)
然后示例 Dapper 代码:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using Dapper;
namespace CPTVP
{
class Program
{
static void Main(string[] args)
{
var dt = new DataTable();
dt.Columns.Add("StringsStringsEverywhere", typeof(string));
foreach (int i in Enumerable.Range(0,10))
{
dt.Rows.Add(string.Format("{0:0000}", i));
}
using (var conn = new SqlConnection("Data Source=.;Initial Catalog=Scratch;Integrated Security=true;"))
{
Console.WriteLine(String.Join("\n", conn.Query<string>("SELECT * FROM @tvpstr", new {tvpstr=dt.AsTableValuedParameter("dbo.TVPSTRING")})));
}
}
}
}
我需要在字符串查询中使用 Table 值参数
我有以下代码
string query = "SELECT * FROM Tabla1 T1 INNER JOIN @listItems T2 ON T2.Id = T1.Id";
var results = sqlConnection.Query(query , new TableValuedParameter<string>("@listItems", "string_list_Type", valuesList));
变量valueList是一个List
执行报错:"Could not find stored procedure"
是否可以在不使用程序的情况下使用 table 值参数?
谢谢 问候
如果没有看到完整的代码示例,很难判断问题出在哪里。考虑一下,它执行得很好:
一、TVP定义
CREATE TYPE [dbo].[TVPSTRING] AS TABLE(
[VALUE] NVARCHAR(MAX) NULL
)
然后示例 Dapper 代码:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using Dapper;
namespace CPTVP
{
class Program
{
static void Main(string[] args)
{
var dt = new DataTable();
dt.Columns.Add("StringsStringsEverywhere", typeof(string));
foreach (int i in Enumerable.Range(0,10))
{
dt.Rows.Add(string.Format("{0:0000}", i));
}
using (var conn = new SqlConnection("Data Source=.;Initial Catalog=Scratch;Integrated Security=true;"))
{
Console.WriteLine(String.Join("\n", conn.Query<string>("SELECT * FROM @tvpstr", new {tvpstr=dt.AsTableValuedParameter("dbo.TVPSTRING")})));
}
}
}
}