这是我用来将Dapper查询结果转换为二维数组的最少量代码吗?
var array =
cn.Query(@"SELECT Id, Desc FROM Things")
.Select<object, ArrayList>(d =>
{
return new ArrayList {((dynamic) d).Id, ((dynamic) d).Desc };
});
Run Code Online (Sandbox Code Playgroud)
我基本上构造一个结果作为json响应返回如下:
[
[1, "Thing one"],
[2, "Thing two"],
[3, "Thing two"],
]
Run Code Online (Sandbox Code Playgroud)
序列化array使用:
string json = Newtonsoft.Json.JsonConvert.SerializeObject(array);
Run Code Online (Sandbox Code Playgroud)
产生正确的结果,所以它做的工作,我只是想知道是否有一个捷径?
不确定Dapper语法,但是如何删除ArrayList,而是返回object[]select内部并ToArray()在最后调用:
var array =
cn.Query(@"SELECT Id, Desc FROM Things")
.Select(d => new object[] { d.Id, d.Desc })
.ToArray();
Run Code Online (Sandbox Code Playgroud)
这会给你一个object[,].
如果你不介意结果dynamic[,]你可以使用更短的版本,我省略指定实际的数组类型:
.Select(d => new [] { d.Id, d.Desc })
Run Code Online (Sandbox Code Playgroud)