如何将 linq 查询转换为仅包含值的 JavaScript 数组?
How can a linq query be converted to JavaScript array containing only values?
我有一个 JavaScript 网格库(它在页面上创建了一个 table),它接受一个 JavaScript 数组作为输入,用于在网格中呈现。但是,我不确定如何将 Linq-to-SQL 查询(针对 SQL 服务器数据库)转换为仅包含值的 JavaScript 数组。
我试过了,但它在 JSON 键中包含了 table 列名称(而且我不想要 JSON,我想要一个 JavaScript字符串数组,除非这可以转换为数组?):
JsonConvert.SerializeObject(query)
我需要生成的格式示例:
[1,2,3],[4,5,6]
环境:.NET Core 3.1
编辑:这是我目前得到的样本,这个 returns 不太理想 JSON (由于查询结果太大, JSON key for very element is going to double size of the query):
设备Table
ID Name
1 iPhone7
2 iPhone8
3 iPhone9
需要数组(注意:没有列名)
[1, "iPhone7"],[2, "iPhone8"],[3, "iPhone9"]
控制器方法中的当前 C# 代码(returns 当前每个元素都不需要键)
var query = db.Devices;
var formattedResult = JsonConvert.SerializeObject(query);
return Ok(formattedResult);
你尝试了吗
var query = db.Devices.ToList();
var array = JArray.FromObject(query);
return Ok(formattedResult)
从技术上讲,您可以这样做:
var query = db.Devices.AsEnumerable()
.Select(d => new object[]{d.ID, d.Name});
var formattedResult = JsonConvert.SerializeObject(query);
return Ok(formattedResult);
但是您请求另一端的代码将不得不将所有这些数组转换回对象。
为了优化网络流量的大小而将您的模型复杂化的做法极不值得。如果您通过网络拉取足够多的项目以使其成为性能问题,您可能会遇到各种其他性能问题。我会先考虑其他选择,比如实现分页。
我有一个 JavaScript 网格库(它在页面上创建了一个 table),它接受一个 JavaScript 数组作为输入,用于在网格中呈现。但是,我不确定如何将 Linq-to-SQL 查询(针对 SQL 服务器数据库)转换为仅包含值的 JavaScript 数组。
我试过了,但它在 JSON 键中包含了 table 列名称(而且我不想要 JSON,我想要一个 JavaScript字符串数组,除非这可以转换为数组?):
JsonConvert.SerializeObject(query)
我需要生成的格式示例:
[1,2,3],[4,5,6]
环境:.NET Core 3.1
编辑:这是我目前得到的样本,这个 returns 不太理想 JSON (由于查询结果太大, JSON key for very element is going to double size of the query):
设备Table
ID Name
1 iPhone7
2 iPhone8
3 iPhone9
需要数组(注意:没有列名)
[1, "iPhone7"],[2, "iPhone8"],[3, "iPhone9"]
控制器方法中的当前 C# 代码(returns 当前每个元素都不需要键)
var query = db.Devices;
var formattedResult = JsonConvert.SerializeObject(query);
return Ok(formattedResult);
你尝试了吗
var query = db.Devices.ToList();
var array = JArray.FromObject(query);
return Ok(formattedResult)
从技术上讲,您可以这样做:
var query = db.Devices.AsEnumerable()
.Select(d => new object[]{d.ID, d.Name});
var formattedResult = JsonConvert.SerializeObject(query);
return Ok(formattedResult);
但是您请求另一端的代码将不得不将所有这些数组转换回对象。
为了优化网络流量的大小而将您的模型复杂化的做法极不值得。如果您通过网络拉取足够多的项目以使其成为性能问题,您可能会遇到各种其他性能问题。我会先考虑其他选择,比如实现分页。