Как я могу вернуть результат строки Kusto Query из c # - PullRequest
0 голосов
/ 23 февраля 2019
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); для конкретного класса.

1 Ответ

0 голосов
/ 23 февраля 2019

при условии, что вы используете клиентские библиотеки, упомянутые здесь , вы должны сделать что-то вроде следующего:

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