我正试图从SystemUser
获取TeamMembership
信息。我一直在尝试这些片段,但第一个,创建一个新实体,但不检索用户的所有信息,如电子邮件地址,电话号码等...
foreach (TeamMembership user in teamMembers)
{
sysUser.Id = user.SystemUserId.Value;
if (sysUser.InternalEMailAddress != string.Empty)
{
ActivityParty toParty = new ActivityParty();
toParty.PartyId = new EntityReference(SystemUser.EntityLogicalName, user.SystemUserId.Value);
toPartyList.Add(toParty);
}
}
然后我尝试过这个,但它没有返回任何东西!
// Get the Team Entity from the Workflow input parameter
Guid team = TeamName.Get<EntityReference>(executionContext).Id;
List<SystemUser> users =
(from user in datacontext.CreateQuery<SystemUser>()
join teamMembership in datacontext.CreateQuery<TeamMembership>()
on user.SystemUserId.Value equals teamMembership.SystemUserId
join thisteam in datacontext.CreateQuery<Team>() on teamMembership.TeamId.Value equals thisteam.TeamId.Value
where thisteam.Name == TeamName.Get<EntityReference>(executionContext).Name
select user).ToList();
foreach(SystemUser user in users)
{
if (user.InternalEMailAddress != null)
LoggerObj.WriteLog("User " + user.FirstName + " Email:" + user.InternalEMailAddress);
}
答案 0 :(得分:0)
由于技术原因,我没有运行你的代码(阅读:我有点懒惰)但是我觉得你应该放宽LINQ语句中的条件。然后,一旦您进入任何 SystemUser 实例,您就可以再次收紧它。如果你在完全放松之后没有得到任何东西,你还有另外一个问题。 :)