如何使用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);
}
重要事项:我的SetStateRequest无法被visual studio 2012识别,因此与上面的示例不同,它没有突出显示,实际上是红色下划线,并且在悬停时显示“未找到类型或命名空间”消息
编辑:我看到这个问题得到了投票,如果我错过了什么,我很抱歉,除了我昨天花了4个小时在线寻找这个事实,我真的没有更多的信息要提供,包括stackoverflow )没有任何用处。我可能使用了错误的搜索条件或查找错误的地方,但如果是这样的话,任何人都可以至少指出我正确的方向吗?我是所有这些的初学者(stackoverflow和crm2013),我有点坚持这个。再次感谢
答案 0 :(得分:7)
您没有引用microsoft.crm.sdk.proxy.dll
及其名称空间Microsoft.Crm.Sdk.Messages
所以代码将是
using Microsoft.Crm.Sdk.Messages;
另外,请确保State
和Status
的int值对实体有效(在您的情况下为systemuser
)