3

我编写了一个程序,它使用 Azure API 对 Azure 日志分析存储库运行查询。

用于编写此查询的语言称为 Kusto。

我有很多直接在 C# 代码中使用的 Kusto 查询。

像这样的东西:

Client.ExecuteQuery(@"Heartbeat 
| summarize LastCall = max(TimeGenerated) by Computer 
| where LastCall < ago(15m)
| take 20");

有些查询很长,使代码非常难看。

有没有更好和更合适的方式来存储这些查询,例如在有助于从代码中删除它们的数据库中。

4

2 回答 2

2

您可以将查询与源代码一起保存为文本文件,然后将它们与您的应用程序一起打包为“嵌入式资源”。

这篇文章中接受的答案解释了如何:如何读取嵌入式资源文本文件

您还可以通过您喜欢的搜索引擎找到大量示例和教程;尝试“C# 嵌入式资源”

于 2019-02-17T19:38:28.780 回答
2

对于 EF 迁移,我使用存储在资源中数据层库中的 sql,然后像这样调用:

private string ReadSqlFile(string relativePath)
{
    var path = Path.Combine(AppContext.BaseDirectory, relativePath);
    return File.ReadAllText(path);
}

protected override void Up(MigrationBuilder migrationBuilder)
{
    //some migrations methods
    var script = ReadSqlFile("Migrations/DataMigration/AddNewCountryFieldToStudent.sql");
    migrationBuilder.Sql(script);
}

存储在单独的文件中非常有用。并且不要忘记更改属性以在本地复制。

于 2019-02-17T19:55:52.397 回答