我能够使其余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);
答案 0 :(得分:0)
进一步的调查显示,sdk不会处理匿名类型的序列化,而会将它们静默地清除掉。
例如,可以通过指定以下序列化设置来克服/验证这一点。
PowerBiClient.SerializationSettings.ContractResolver = new DefaultContractResolver(); //anonymous types serialize to blank {} without this
await PowerBiClient.Datasets.PostRowsAsync(dataset.Id, tableName, postRows);
sdk没有很好的文档-实际上几乎没有。