QuoteState不存在?

时间:2013-12-10 10:57:12

标签: c# namespaces dynamics-crm microsoft-dynamics dynamics-crm-2013

我正在为Dynamics CRM 2013开发。我尝试更改Quote的状态,但似乎找不到QuoteState。 我尝试使用QuoteState.Active,但我收到错误:“当前上下文中不存在名称'QuoteState'”。 这些是我使用的命名空间:

using Microsoft.Crm.Sdk.Messages;
using Microsoft.Crm.Sdk;
using Microsoft.Xrm.Client;
using Microsoft.Xrm.Client.Services;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Query;
using Microsoft.Xrm.Sdk.Messages;
using Microsoft.Xrm.Sdk.Client;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xrm;

我错过了什么名称空间或我做错了什么?

编辑:

这是我尝试使用它的功能:

/// <summary>
/// Activates the Quote
/// </summary>
/// <param name="quote">The quote</param>
/// <param name="xrm">The Xrm Service Context</param>
private static void ActivateQuote(Quote quote, XrmServiceContext xrm)
{
    SetStateRequest activateQuote = new SetStateRequest()
    {
        EntityMoniker = quote.ToEntityReference(),
        State = new OptionSetValue((int)QuoteState.Active),
        Status = new OptionSetValue(3)
    };
    SetStateResponse activateResponse = (SetStateResponse)xrm.Execute(activateQuote);

    // Save
    xrm.SaveChanges();
    Console.WriteLine("Activated the quote...");
}

如果我使用State = new OptionSetValue(1)它可以工作,所以只是QuoteState丢失了。

1 个答案:

答案 0 :(得分:1)

QuoteState是使用早期编程时创建的自定义枚举。 这意味着您需要从SDK运行代码生成工具(CrmSvcUtil.exe)。

http://technet.microsoft.com/en-us/library/gg327844.aspx

仅供参考,这将是该工具生成的枚举:

[System.Runtime.Serialization.DataContractAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("CrmSvcUtil", "5.0.9690.3339")]
    public enum QuoteState
    {

        [System.Runtime.Serialization.EnumMemberAttribute()]
        Draft = 0,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        Active = 1,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        Won = 2,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        Closed = 3,
    }