public async Task <PluginType> GetPluginTypeByIdAsync(Guid id) { QueryExpression query = new QueryExpression() { NoLock = true, TopCount = 2, EntityName = PluginType.EntityLogicalName, ColumnSet = new ColumnSet(true), Criteria = { Conditions = { new ConditionExpression(PluginType.EntityPrimaryIdAttribute, ConditionOperator.Equal, id), }, }, LinkEntities = { new LinkEntity() { JoinOperator = JoinOperator.LeftOuter, LinkFromEntityName = PluginType.EntityLogicalName, LinkFromAttributeName = PluginType.Schema.Attributes.pluginassemblyid, LinkToEntityName = PluginAssembly.EntityLogicalName, LinkToAttributeName = PluginAssembly.EntityPrimaryIdAttribute, Columns = new ColumnSet(await PluginAssemblyRepository.GetAttributesAsync(_service)), EntityAlias = PluginType.Schema.Attributes.pluginassemblyid, }, }, }; var coll = _service.RetrieveMultiple(query).Entities; return(coll.Count == 1 ? coll.Select(e => e.ToEntity <PluginType>()).SingleOrDefault() : null); }
private async Task <SdkMessageProcessingStep> GetLinked1(Guid id) { QueryExpression query = new QueryExpression() { NoLock = true, TopCount = 2, EntityName = SdkMessageProcessingStep.EntityLogicalName, ColumnSet = new ColumnSet(true), Criteria = { Conditions = { new ConditionExpression(SdkMessageProcessingStep.EntityPrimaryIdAttribute, ConditionOperator.Equal, id), }, }, LinkEntities = { new LinkEntity() { LinkFromEntityName = SdkMessageProcessingStep.EntityLogicalName, LinkFromAttributeName = SdkMessageProcessingStep.Schema.Attributes.sdkmessageid, LinkToEntityName = SdkMessage.EntityLogicalName, LinkToAttributeName = SdkMessage.EntityPrimaryIdAttribute, EntityAlias = SdkMessageProcessingStep.Schema.Attributes.sdkmessageid, JoinOperator = Microsoft.Xrm.Sdk.Query.JoinOperator.LeftOuter, Columns = new ColumnSet(true), }, new LinkEntity() { LinkFromEntityName = SdkMessageProcessingStep.EntityLogicalName, LinkFromAttributeName = SdkMessageProcessingStep.Schema.Attributes.sdkmessagefilterid, LinkToEntityName = SdkMessageFilter.EntityLogicalName, LinkToAttributeName = SdkMessageFilter.EntityPrimaryIdAttribute, EntityAlias = SdkMessageProcessingStep.Schema.Attributes.sdkmessagefilterid, JoinOperator = Microsoft.Xrm.Sdk.Query.JoinOperator.LeftOuter, Columns = new ColumnSet(true), LinkEntities = { new LinkEntity() { LinkFromEntityName = SdkMessageFilter.EntityLogicalName, LinkFromAttributeName = SdkMessageFilter.Schema.Attributes.sdkmessageid, LinkToEntityName = SdkMessage.EntityLogicalName, LinkToAttributeName = SdkMessage.EntityPrimaryIdAttribute, EntityAlias = SdkMessageProcessingStep.Schema.Attributes.sdkmessagefilterid + "." + SdkMessageFilter.Schema.Attributes.sdkmessageid, JoinOperator = Microsoft.Xrm.Sdk.Query.JoinOperator.LeftOuter, Columns = new ColumnSet(true), }, }, }, new LinkEntity() { LinkFromEntityName = SdkMessageProcessingStep.EntityLogicalName, LinkFromAttributeName = SdkMessageProcessingStep.Schema.Attributes.eventhandler, LinkToEntityName = PluginType.EntityLogicalName, LinkToAttributeName = PluginType.EntityPrimaryIdAttribute, EntityAlias = SdkMessageProcessingStep.Schema.Attributes.eventhandler + "." + PluginType.EntityLogicalName , JoinOperator = Microsoft.Xrm.Sdk.Query.JoinOperator.LeftOuter, Columns = new ColumnSet(true), LinkEntities = { new LinkEntity() { LinkFromEntityName = PluginType.EntityLogicalName, LinkFromAttributeName = PluginType.Schema.Attributes.pluginassemblyid, LinkToEntityName = PluginAssembly.EntityLogicalName, LinkToAttributeName = PluginAssembly.EntityPrimaryIdAttribute, EntityAlias = SdkMessageProcessingStep.Schema.Attributes.eventhandler + "." + PluginType.EntityLogicalName + "." + PluginType.Schema.Attributes.pluginassemblyid , JoinOperator = Microsoft.Xrm.Sdk.Query.JoinOperator.LeftOuter, Columns = new ColumnSet(await PluginAssemblyRepository.GetAttributesAsync(_service)), }, }, }, }, }; var coll = _service.RetrieveMultiple(query).Entities; return(coll.Count == 1 ? coll.Select(e => e.ToEntity <SdkMessageProcessingStep>()).SingleOrDefault() : null); }