【问题标题】:How can I return result of string Kusto Query from c#如何从 c# 返回字符串 Kusto Query 的结果
【发布时间】:2019-02-23 16:50:16
【问题描述】:
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);。

【问题讨论】:

    标签: c# azure c#-4.0 azure-data-explorer


    【解决方案1】:

    假设您使用提到的客户端库here,您应该能够执行以下操作:

        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;
        }
    

    【讨论】:

    • 我有一个问题:对我来说 .ToList() 没有被数据填充。尽管查询返回结果。猜猜为什么?
    • 你确定你的班级有公共属性吗?
    • 是的,我做到了。在此处查看完整代码:github.com/Chandan-Baba/azure-kusto-c-app/blob/master/…
    • 删除{get; set;}s。请查看上面的示例并按原样进行操作(您提出的任何未披露您所做更改的问题都会使您更难回答您的问题,假设您正在运行相同的代码并获得不同的结果)
    • @Yoni 感谢您的建议。它仅在删除 getter 和 setter 后才对我有用。但为什么会这样呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多