我试图选择2个整数列的列表将结果映射到元组。仅作为一个例子:
return connection.Query<Tuple<int,int>>("select id1, id2 from sometable").ToList();
不起作用,但如果我创建一个包含两个整数的类,则相同的查询会起作用,例如:
return connection.Query<BogusClass>("select id1, id2 from sometable").ToList();
public class BogusClass{
public int id1 {get;set;}
public int id2 {get;set;}
}
我的偏好不是为了获得一些数据而必须创建一些虚假类。在这种情况下,它是两个整数列,但我还能想到其他用例。
编辑 - 答案:这是HTH的语法
改变:
return connection.Query<Tuple<int,int>>("select id1, id2 from sometable").ToList();
至:
return connection.Query<int, int, Tuple<int, int>>("select id1, id2 from sometable", Tuple.Create, splitOn: "*").ToList();
这是一个工作示例:
public class DapperTests
{
[Test]
public void TuppleTest()
{
var conn = new SqlConnection(@"Data Source=.\sqlexpress; Integrated Security=true; Initial Catalog=mydb");
conn.Open();
var result = conn.Query<int, int, Tuple<int, int>>(
"select 1,2 union all select 4,5", Tuple.Create, splitOn: "*").ToList();
conn.Close();
Assert.That(result.Count, Is.EqualTo(2));
}
}
你可以在这里找到更多的例子。
你可以这样
string query = "Select value1 as Item1,value2 as Item2 from #sometable";
var data = db.Query<Tuple<int,int>>(query);