일부 엔티티 (이 경우 '사용자')를 가져올 때 기본적으로 모든 탐색 속성이로드되지는 않습니다. 확장 (..)을 사용해야합니다. 내가 어떻게 사용자에게 관리자를 지정하는 방법과 사용자의 관리자 탐색 속성을 얻기 위해 예를 들어 줄 아래 (일부 인프라 뉘앙스 생략) :
public async Task<Result> AssingUserManager(string userUpn, string managerUpn)
{
try
{
var user = (AD.User)await ADClient.Users
.Where(x => x.UserPrincipalName == userUpn)
.ExecuteSingleAsync();
var manager = (AD.User)await ADClient.Users
.Where(x => x.UserPrincipalName == managerUpn)
.ExecuteSingleAsync();
user.Manager = manager;
await manager.UpdateAsync();
return Result.Ok();
}
catch (Exception ex)
{
return Result.Fail(new Error("Failed to assign manager", null, ex));
}
}
public async Task<Result<User>> GetUserManager(string upn)
{
try
{
var user = (AD.User)await ADClient.Users
.Where(x => x.UserPrincipalName == upn)
.Expand(x => x.Manager)
.ExecuteSingleAsync();
var manager = user.Manager as AD.User;
if (manager != null)
{
return Result.Ok(ConvertToModel(manager));
}
return Result.Fail<User>(new Error("Manager not found for specified user", null));
}
catch (Exception ex)
{
return Result.Fail<User>(new Error("Failed to get user's manager", null, ex));
}
}
은 또한, 나는 그래프를 업데이트 할 때 나는 그렇게 할 것을 알아 차리는에 UpdateAsync를 호출하여 관리자 속성으로 설정된 사용자가 아닌 관리자로 할당 된 사용자 (source에서 가져옴)