Dapper - 带有字符串查询的表值参数

时间:2015-08-10 14:17:49

标签: dapper

我需要将表值参数与字符串查询

一起使用

我有以下代码

alpha.(yi(w.xi+b-1)=0

变量valueList是List

执行给我一个错误:"找不到存储过程"

是否有可用的美国表值参数而没有使用程序?

感谢 问候

1 个答案:

答案 0 :(得分:7)

如果没有看到完整的代码示例,很难说出问题可能是什么。考虑一下,执行得非常好:

首先,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")})));
            }
        }
    }
}