我正在使用 Microsoft Graph 使用以下代码检索联系人文件夹:
GraphServiceClient client = new GraphServiceClient(new DelegateAuthenticationProvider(
(requestMessage) => {
requestMessage.Headers.Authorization =
new AuthenticationHeaderValue("Bearer", accessToken);
return Task.FromResult(0);
}));
var contactsData = await client
.Me
.Contacts
.Request()
.Top(1000)
.GetAsync();
Run Code Online (Sandbox Code Playgroud)
上面的代码返回联系人,但只返回默认文件夹中的联系人。我想从用户的所有文件夹中检索联系人。
我试过先获取文件夹,然后获取他们的联系人,但它返回 a Null Reference Exceptionas Contacts are null。
var Folders = client
.Me
.ContactFolders
.Request()
.Top(1000)
.GetAsync();
Folders.Wait();
var contacts = Folders.Result.SelectMany(a => a.Contacts).ToList();
Run Code Online (Sandbox Code Playgroud) 我有一种情况,我将可为空的布尔值传递给该方法,然后在linq查询中,如果该参数为null,则需要获取所有记录,否则进行比较并返回相对值。
这是我尝试过的方法(简化了仅询问相关问题的方法)
public List<Something> Fetch(bool? allocated = null){
return (from x in DbContext.Something
where x.Active && (allocated == null || x.Allocated == allocated.Value)
select x).ToList();
}
Run Code Online (Sandbox Code Playgroud)
我也检查过,allocated.HasValue但是每次都出现相同的问题。
我得到的异常是:
System.InvalidOperationException:'空对象必须具有一个值。