我有一个实体" new_trialxrmservicetoolkit"在里面我有查询字段" new_LookupTransactionHeader"它链接到" new_transactionheader"实体。
如何解决这个问题?
我遵循此tutorial,但无法解决我想要的问题。
我的代码:
new_trialxrmservicetoolkit t = new new_trialxrmservicetoolkit();
ColumnSet myAttributes = new ColumnSet(new String[] { "new_LookupTransactionHeader" });
Entity myEntityHavingLookup = service.Retrieve("new_transactionheader", t.id, myAttributes);
var myLookupId = ((Microsoft.Xrm.Sdk.EntityReference)(myEntityHavingLookup.Attributes["new_LookupTransactionHeader"])).Id;
throw new InvalidPluginExecutionException(myLookupId.ToString()); // catch this result
答案 0 :(得分:1)
此代码是否在注册' new_trialxrmservicetoolkit &#39 ;?的插件中运行?如果是,请使用以下代码。
assignees
如果该插件用于“删除”'消息,更改我的代码的第一行:
var entity = (Entity)context.InputParameters["Target"];
if (entity.LogicalName != "new_trialxrmservicetoolkit")
return;
var entityId= entity.Id;
ColumnSet myAttributes = new ColumnSet(new String[] { "new_LookupTransactionHeader" });
Entity myEntityHavingLookup = service.Retrieve("new_trialxrmservicetoolkit", entityId, myAttributes);
var myLookupId = ((Microsoft.Xrm.Sdk.EntityReference)(myEntityHavingLookup.Attributes["new_LookupTransactionHeader"])).Id;
throw new InvalidPluginExecutionException(myLookupId.ToString());
答案 1 :(得分:0)
t
属于new_trialxrmservicetoolkit
类型,您无法将t.id
用于new_LookupTransactionHeader
类型。
从targetentity
&获取查找ID用它来检索其他列。
答案 2 :(得分:-1)
获取查找字段值
EntityReference entref = (EntityReference)item.Attributes[attributeName];
var LookupId = entref.Id;
var logicalName = entref.LogicalName;
设置查找字段值
newAccount[attributeName] = new EntityReference(logicalName, LookupId);
设置查找字段的空值
newAccount[attributeName] = Null;