問題:
を使用してMicrosoft Dynamics CRM 2011
います。CRM に拡張機能 (カスタマー サービスの連絡先) を追加しました。
UIにもそれぞれいくつかの変更を加える必要があります。そのために、XRM.cs の再生成から変更を開始しました。
その一環として次のことを行いました。
C:\Users\<userName>\SDK\Bin>CrmSvcUtil.exe
/codeCustomization:"Microsoft.Xrm.Client.CodeGeneration.CodeCustomization,
Microsoft.Xrm.Client.CodeGeneration" /out:\Xrm003.cs
/url:http://<url_for_server>/<organization_name>/XRMServices/2011/Organization.svc
/domain:"<domain_name>" /username:"<username>" /password:"<password>"
/namespace:<desired_namespace_name> /serviceContextName:XrmServiceContext
これにより、Xrm003.cs
. しかし、この新しく生成された Xrm003.cs を既存のものと比較すると、まったく触れていないエンティティにいくつかの違いがあることがわかります。
それらのいくつかを次に示します。
元のものは次のとおりです。
/// <summary>
/// Drop-down list for selecting the category of the account.
/// </summary>
[Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("accountcategorycode")]
public Microsoft.Xrm.Sdk.OptionSetValue AccountCategoryCode
{
get
{
return this.GetAttributeValue<Microsoft.Xrm.Sdk.OptionSetValue>("accountcategorycode");
}
set
{
this.OnPropertyChanging("AccountCategoryCode");
this.SetAttributeValue("accountcategorycode", value);
this.OnPropertyChanged("AccountCategoryCode");
}
}
新しいものには次のものがあります。
/// <summary>
/// Drop-down list for selecting the category of the account.
/// </summary>
[Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("accountcategorycode")]
public System.Nullable<int> AccountCategoryCode
{
get
{
return this.GetAttributeValue<System.Nullable<int>>("accountcategorycode");
}
set
{
this.SetAttributeValue<Microsoft.Xrm.Sdk.OptionSetValue>("AccountCategoryCode", "accountcategorycode", value);
}
}
違いに気付くと、次の 2 つのことがわかります。
のタイプ
AccountCategoryCode
はMicrosoft.Xrm.Sdk.OptionSetValue
(元の) とSystem.Nullable<int>
再生成されます。方法
set
が実装されています。
これは、他の多くのエンティティにも当てはまります。
なぜこれが XRM.cs の再生成のステップを逃したのか、それが原因なのか誰か教えてください。前もって感謝します!
編集: 原因 (?) と思われる 1 つのことは、これら 2 つの XRM.cs の間でロールアップ 16 を CRM に適用したことです。
問題を解決するためのソリューション:
私が回答としてマークしたダリルの回答を参照してください。
私は彼の言うことに従い、XRM.cs 再生成コマンドを次のように変更しました (次のコマンドは適切なコマンドであり、問題の解決に役立ちました)。
C:\Users\<userName>\SDK\Bin>CrmSvcUtil.exe
/out:\Xrm003.cs
/url:http://<url_for_server>/<organization_name>/XRMServices/2011/Organization.svc
/domain:"<domain_name>" /username:"<username>" /password:"<password>"
/namespace:<desired_namespace_name> /serviceContextName:XrmServiceContext
結論:
Qで言及した問題を引き起こしていたコマンドで次のことを行いました。
/codeCustomization:"Microsoft.Xrm.Client.CodeGeneration.CodeCustomization,
Microsoft.Xrm.Client.CodeGeneration"
私の問題は、削除するだけで解決しました。