На и мне удалось заставить его работать. Я использовал то же решение, которое предложил Джон Скит, используя метод Patch. Я прилагаю свой код здесь.
publi c stati c bool GrantDatasetAccess (строка dataSetId, bool online, роль строки, строка электронной почты, строка bigQueryJsonPath, строка bigQueryScope, строка projectId, журнал clsLog) {
try
{
BigQueryClient client = GetBigQueryClient(online, bigQueryJsonPath, bigQueryScope, projectId);
BigQueryDataset dataset = GetDataSet(online, dataSetId, bigQueryJsonPath, bigQueryScope, projectId, log);
List<AccessData> accessList = new List<AccessData>();
var accessData = new AccessData()
{
Role = role,
GroupByEmail = null,
UserByEmail = email,
SpecialGroup = null,
IamMember = null,
Domain = null,
View = null
};
accessList.Add(accessData);
dataset.Resource.Access = accessList;
dataset.Patch(dataset.Resource, true);
}
catch (Exception e)
{
log.ManageError("Error GetDataSet: {0}\nError: {1}", dataSetId, string.Concat(e.Message, "\n", e.StackTrace));
}
return true;
}