PostRows API不适用于软件包Microsoft.PowerBi.Api

时间:2020-09-28 21:10:17

标签: c# api rest powerbi

我能够使其余API在C#中快速工作。该代码可以正常工作,没有任何错误或异常,但PostRows()方法似乎无效。

可以很好地创建数据集,表和列,但是似乎没有保存/加载行。我通过在线访问Power BI Service并使用表可视化并将表列添加到其中来进行验证。它不会显示已保存的数据-请参见屏幕截图。

是否没有保存/加载行?还是我去错误的地方查看数据?

谢谢您的帮助。

使用软件包Microsoft.PowerBi.Api

var tableName = "test-table-1";
        var table = new Table()
        {
            Name = tableName,
            Columns = new List<Column>()
            {
                new Column("col1", "string"),
                new Column("col2", "string"),
                new Column("col3", "string")
            }
        };
        var dataset = await PowerBiClient.Datasets.PostDatasetAsync(new CreateDatasetRequest()
        {
            Name = "test-dataset-1",
            DefaultMode = "Push",
            Tables = new List<Table>() {table}
        });
        var postRows = new PostRowsRequest
        {
            Rows = new List<object>()
            {
                new
                {
                    col1 = "sdsdds",
                    col2 = "rtetete",
                    col3 = "werwer2423"
                },
                new
                {
                    col1 = "sd333sdds",
                    col2 = "rtet234ete",
                    col3 = "werw1111er"
                }
            }
        };
        await PowerBiClient.Datasets.PostRowsAsync(dataset.Id, tableName, postRows);

enter image description here

1 个答案:

答案 0 :(得分:0)

进一步的调查显示,sdk不会处理匿名类型的序列化,而会将它们静默地清除掉。

例如,可以通过指定以下序列化设置来克服/验证这一点。

PowerBiClient.SerializationSettings.ContractResolver = new DefaultContractResolver(); //anonymous types serialize to blank {} without this
        await PowerBiClient.Datasets.PostRowsAsync(dataset.Id, tableName, postRows);

sdk没有很好的文档-实际上几乎没有。