我在哪里可以找到有关用户实体的详细信息,以及如何获取它的实例?

时间:2014-06-18 06:56:22

标签: c# dynamics-crm-2011

您好。

我们这里有一个自定义解决方案,供应商使用Microsoft Dynamics作为基础。他们创建了一个自定义实体(contactrelationships),并且该实体的某个字段/属性称为“ownerid”。我查看了GUI /网站  并且看起来这个属性只是来自用户实体的用户。

我在网上搜索了用户实体的信息(我已经下载了微软提供的ERD),我找不到关于它。有各种各样的东西谈论用户和团队,但没有像这样的MSDN 联系人实体上的page

基本上我在这里有一个自定义实体,其中一个属性/字段(名称为ownerid)使用用户实体。当我在网站上查看实体并点击ownerid将我引导到用户管理网页时,我验证了这一点。

我想通过c#创建此自定义实体的新实例并正确分配ownerid属性。我之前使用过EntityReference,但我不确定这是否正确。

你能帮忙吗?谢谢:)


1 个答案:

答案 0 :(得分:1)

ownerid是Dynamics CRM中的一个特殊属性。如果在将Ownwership设置为User or Team的情况下创建实体,则会在实体内自动创建属性ownerid(以及createdbymodifiedby等其他属性。)

ownerid可以处理SystemUser条记录或Team条记录,SystemUser的元数据位于此处:

http://msdn.microsoft.com/en-us/library/gg328525(v=crm.5).aspx

和`团队的元数据在这里:

http://msdn.microsoft.com/en-us/library/gg328312(v=crm.5).aspx

该字段是EntityReference,因此您需要使用语法(如果您要指定与实际创建记录的用户不同的用户)

entity["ownerid"] = new EntityReference("systemuser", userId);

但由于此属性很特殊,上述语法仅在您创建新记录时有效,如果要修改现有记录,则需要使用AssignRequest

Guid accountId = new Guid("90F8889F-EB95-E781-8417-000C44420CBC");
Guid newOwnerId = new Guid("A8AA28B4-9015-DF11-8062-000E0CA08051");

AssignRequest assignRequest = new AssignRequest
        {
            Assignee = new EntityReference("systemuser", newOwnerId),
            Target = new EntityReference("account", accountId)
        };
service.Execute(assignRequest);