事前バインディングを使用して連絡先エンティティに PostUpdate プラグインを作成しています。
残念ながら、1:x 関係を表すすべてのプロパティは null です。
コードは非常に単純です。
* CRMcontext は CrmSvcUtil.exe によって生成されたファイルです。
* service は LocalPluginContext からの IOrganizationService です。
using ( var serviceContext = new CRMcontext(service) )
{
// This works fine
var contact = serviceContext.CreateQuery<Contact>().First(c => c.Id == context.PrimaryEntityId);
// why is currency null after this line?! (and yes, it's set in the entity)
var currency = contact.transactioncurrency_contact;
}
この例 (最後のコード スニペット) に従いました: http://msdn.microsoft.com/en-us/library/gg695791.aspx
助けてくれてありがとう!
編集:
/// <summary>
/// N:1 transactioncurrency_contact
/// </summary>
[Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("transactioncurrencyid")]
[Microsoft.Xrm.Sdk.RelationshipSchemaNameAttribute("transactioncurrency_contact")]
public TransactionCurrency transactioncurrency_contact
{
get
{
return this.GetRelatedEntity<TransactionCurrency>("transactioncurrency_contact", null);
}
set
{
this.OnPropertyChanging("transactioncurrency_contact");
this.SetRelatedEntity<TransactionCurrency>("transactioncurrency_contact", null, value);
this.OnPropertyChanged("transactioncurrency_contact");
}
}