如何使用 c# 更改 CRM 2013 中的状态/状态

本文关键字:状态 2013 CRM 何使用 更改 | 更新日期: 2024-10-25 13:39:27

如何使用 C# 更改 CRM 2013 中实体的状态和/或状态?

CRM 2011 的 SetStateRequest 和早期的 SetStateDynamicEntityRequest 都没有被识别。在线搜索似乎也无济于事...我是否缺少命名空间或其他内容?

提前致谢

命名空间:

using System;  
using System.Collections;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
using System.Net;  
using Microsoft.Xrm.Sdk;  
using Microsoft.Xrm.Sdk.Client;  
using Microsoft.Xrm.Sdk.Query;  
using Microsoft.Xrm.Sdk.Discovery;  
using Microsoft.Xrm.Sdk.Messages;  
using System.ServiceModel;  
using System.ServiceModel.Description;  
using System.Web.Services.Protocols;  

该函数:

private void changeUserStatus(Guid userId, IOrganizationService service, int state)  
{  
    SetStateRequest setStateRequest = new SetStateRequest  
    {  
        EntityMoniker = new EntityReference("systemuser", userId),  
        State = new OptionSetValue(state),  
        Status = new OptionSetValue(-1),  
    };  
    service.Execute(setStateRequest);  
}  

重要说明:Visual Studio 2012无法识别My SetStateRequest,因此与上述示例不同,它没有突出显示,并且实际上带有红色下划线,并在悬停时显示"找不到类型或命名空间"消息

编辑:我看到这个问题被否决了,如果我错过了什么,我很抱歉,但我真的没有更多信息可以提供,除了我昨天花了 4 个小时在网上寻找这个(包括堆栈溢出)没有任何用处。我可能使用了错误的搜索条件或查找错误的地方,但如果是这种情况,任何人都可以至少指出我正确的方向吗?我是所有这些(stackoverflow和crm2013)的初学者,我有点坚持这一点。再次感谢

如何使用 c# 更改 CRM 2013 中的状态/状态

您没有引用microsoft.crm.sdk.proxy.dll及其命名空间Microsoft.Crm.Sdk.Messages

所以代码将是

using Microsoft.Crm.Sdk.Messages;

另一件事,确保 StateStatus 的 int 值对实体有效(在您的情况下systemuser