从TeamMembership CRM 2011中检索SystemUser信息

时间:2013-03-08 15:09:36

标签: dynamics-crm-2011 dynamics-crm dynamics-crm-4

我正试图从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);
}

1 个答案:

答案 0 :(得分:0)

由于技术原因,我没有运行你的代码(阅读:我有点懒惰)但是我觉得你应该放宽LINQ语句中的条件。然后,一旦您进入任何 SystemUser 实例,您就可以再次收紧它。如果你在完全放松之后没有得到任何东西,你还有另外一个问题。 :)