2013-12-17 131 views
1

如何使用C#更改CRM 2013中實體的狀態和/或狀態?如何使用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的認可,所以不像上面的例子是沒有突出顯示,實際上紅色下劃線顯示懸停時顯示的「未找到類型或名稱空間」消息g

編輯:我看到問題得到了downvoted,我很抱歉,如果我失去了一些東西,但我真的沒有更多的信息提供,除了我已經花了4小時昨天在網上尋找這一事實(包括stackoverflow)沒有任何用處。我可能會使用錯誤的搜索標準或在錯誤的地方查找,但是如果是這種情況,至少可以讓我指出正確的方向嗎?我是所有這一切的初學者(stackoverflow和crm2013),我有點卡住這一點。再次感謝

+0

也許你因爲你沒有發佈你的C#代碼而被downvoted,其他人如何幫助你沒有(至少)代碼? –

+0

你說得對。現在就完成了!抱歉。 我只是在尋找一個通用的CRM2013解釋(包括命名空間),我會從那裏拿它。除非真的必須,否則我不想用別人的代碼來打擾別人。 – GCL

回答

6

您還沒有引用microsoft.crm.sdk.proxy.dll和其命名空間Microsoft.Crm.Sdk.Messages

這樣的代碼將

using Microsoft.Crm.Sdk.Messages; 

另一件事,是確保爲StateStatus整型值是有效的實體(在你的情況下systemuser

+0

是的!那爲我做了。我回到了dll的SDK/bin文件夾,然後它工作!我錯誤地認爲2013年微軟已經用Xrm版本取代了之前的所有Crm命名空間。 雖然我還沒有測試,但現在我有一些工作。 非常感謝! – GCL

+0

我一直在尋找,謝謝。 –