【发布时间】:2014-01-20 06:42:16
【问题描述】:
我正在使用早期绑定在联系人实体上编写 PostUpdate 插件。
不幸的是,所有应该表示 1:x 关系的属性都是空的。
代码很简单:
* 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;
}
我按照这个例子(最后一个代码sn-p):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");
}
}
【问题讨论】:
-
和
GetRelatedEntity有效吗? -
GetRelatedEntity 正在被生成的包装器调用(在 get_transactioncurrency_contact 中)并返回 NULL。
-
你确定在你的代码中被调用了吗?你调试过这个吗?您是否尝试过手动调用 GetRelatedEntity?
-
是的,它正在被调用 - 我已经从包装代码(由 CrmSvcUtil.exe 生成)中删除了自动生成的标头,并在属性的 getter 中设置了一个断点。
-
发布您的 transactioncurrency_contact 属性代码。
标签: c# plugins dynamics-crm-2011 crm dynamics-crm-2013