/// <summary> /// Handles the entity retrieve message. /// </summary> /// <param name="context">The context.</param> public override void HandleRetrieveMessage(PluginExecutionContext context) { base.HandleRetrieveMessage(context); var mapper = new GenericMapper(context); Entity entity = new Entity(context.PluginContext.PrimaryEntityName); if (mapper != null) { string sql = $"SELECT * FROM {context.PluginContext.PrimaryEntityName} WITH(NOLOCK) WHERE {mapper.PrimaryEntityMetadata.PrimaryIdAttribute} = '{mapper.MapToVirtualEntityValue(mapper.PrimaryEntityMetadata.PrimaryIdAttribute, context.PluginContext.PrimaryEntityId)}'"; sql = mapper.MapVirtualEntityAttributes(sql); var entities = this.GetEntitiesFromSql(context, mapper, sql, 1, 1); if (entities.Entities != null && entities.Entities.Count > 0) { entity = entities.Entities[0]; } } // Set output parameter context.PluginContext.OutputParameters["BusinessEntity"] = entity; }