Database Query: "SELECT * FROM ActivityPointerBase INNER JOIN ActivityPartyBase ON ActivityPartyBase.activityId = ActivityPointerBase.activityid WHERE ActivityPartyBase.partyobjecttypecode in (1,2)" 
-- 1 for Account Entity and 2 for Contact Entity
-- 1 for Account Entity and 2 for Contact Entity
static void GetAllContactandAccountActivities()
        {
            CRMHelper objCRMHelper = new CRMHelper();
            CrmService service = objCRMHelper.GetCRMService();
            AllColumns activityPointerBaseColumns = new AllColumns();
            QueryExpression query = new QueryExpression();
            query.ColumnSet = activityPointerBaseColumns;
            query.EntityName = EntityName.activitypointer.ToString();
            LinkEntity objLinkEntity = new LinkEntity();
            objLinkEntity.LinkFromEntityName = EntityName.activitypointer.ToString();
            objLinkEntity.LinkFromAttributeName = "activityid";
            objLinkEntity.LinkToEntityName = EntityName.activityparty.ToString();
            objLinkEntity.LinkToAttributeName = "activityid";
            //WHERE CONDITION
            FilterExpression activityFilter = new FilterExpression();
            ConditionExpression activityCondition = new ConditionExpression();
            activityCondition.AttributeName = "partyobjecttypecode";
            activityCondition.Operator = ConditionOperator.In;
            activityCondition.Values = new object[] { 1, 2 };
            activityFilter.Conditions = new ConditionExpression[] { activityCondition };
            objLinkEntity.LinkCriteria = activityFilter;
            // Link from ActivityPointer to ActivityPartyBase
            query.LinkEntities = new LinkEntity[] { objLinkEntity };
            BusinessEntityCollection result = service.RetrieveMultiple(query);
            if (result.BusinessEntities.Length > 0)
            {
                foreach (BusinessEntity objBE in result.BusinessEntities)
                {
                }
            }
        }
