code: function EntityQuery(resourceName) {
      if (resourceName != null && !__isString(resourceName)) {
        return fromJSON(this, resourceName);
      }
      
      this.resourceName = resourceName;
      this.fromEntityType = null;
      this.wherePredicate = null;
      this.orderByClause = null;
      this.selectClause = null;
      this.skipCount = null;
      this.takeCount = null;
      this.expandClause = null;
      this.parameters = {};
      this.inlineCountEnabled = false;
      this.noTrackingEnabled = false;
      // default is to get queryOptions and dataService from the entityManager.
      // this.queryOptions = new QueryOptions();
      // this.dataService = new DataService();
      this.entityManager = null;
  
    }
docs: An EntityQuery instance is used to query entities either from a remote datasource or from a local {{#crossLink "EntityManager"}}{{/crossLink}}.
  
  EntityQueries are immutable - this means that all EntityQuery methods that return an EntityQuery actually create a new EntityQuery.  This means that
  EntityQueries can be 'modified' without affecting any current instances.
  
  @class EntityQuery
   
  @example
  var query = new EntityQuery("Customers")
  
  Usually this constructor will be followed by calls to filtering, ordering or selection methods
  @example
  var query = new EntityQuery("Customers")
  .where("CompanyName", "startsWith", "C")
  .orderBy("Region");
  
  @method <ctor> EntityQuery
  @param [resourceName] {String}