c# - 如何从 c# 返回字符串 Kusto Query 的结果
问题描述
var kusto = string.Format("let MyData = CompanyMydata" +
" | where ID == 'Z123' | top 1 by dateTimeUtc desc");
var reader = client.ExecuteQuery(kusto);
while (reader.Read())
{
//how can i return coming result as list of string or json string?
}
在while loop
我可以通过使用一一返回单列值,
string state = reader.GetString(1);
但我想返回完整结果而不是一一列值。这样我就可以JsonConvert.DeserializeObject<T>(resultString);
对特定的课程进行操作。
解决方案
假设您使用的是此处提到的客户端库,您应该能够执行以下操作:
static void Main(string[] args)
{
var kcsb = new KustoConnectionStringBuilder("https://help.kusto.windows.net").WithAadUserPromptAuthentication();
var databaseName = "Samples";
using (var queryProvider = KustoClientFactory.CreateCslQueryProvider(kcsb))
{
var clientRequestProperties = new ClientRequestProperties() { ClientRequestId = "Sample;" + Guid.NewGuid() };
var query = "StormEvents | summarize count(), max(EndTime) by State";
var result = queryProvider.ExecuteQuery<MyType>( // focus on this part
databaseName,
query,
clientRequestProperties)
.ToList();
foreach (var row in result)
{
Console.WriteLine($"State = {row.State}, Count = {row.Count}, MaxEndTime = {row.MaxEndTime}");
}
}
}
class MyType
{
public string State;
public long Count;
public DateTime MaxEndTime;
}
推荐阅读
- go - Go 访问连接到 PC 的智能手机
- python - 如何使用python消除json文件中的冗余
- python - 如何在python中进行十进制运算
- log4j2 - Log4j2:根据系统属性配置不同的日志级别
- ios - 在 Storyboard 中有 IBOutlet 连接 contentScrollView 时崩溃
- android - FFMPEG,视频上带有 Overlay 和 Drawtext 的命令
- sql-server - SSRS 2016 工具栏后退按钮
- javascript - 在 jquery 中显示 TempData 消息
- c# - 如何在静态方法中定义和引发事件(PropertyChangedCallback)
- javascript - v-if 在我的子组件中不起作用