build/breeze.debug.js
function EntityKey(entityType, keyValues) {
    assertParam(entityType, "entityType").isInstanceOf(EntityType).check();
    var subtypes = entityType.getSelfAndSubtypes();
    if (subtypes.length > 1) {
      this._subtypes = subtypes.filter(function (st) {
        return st.isAbstract === false;
      });
    }

    if (!Array.isArray(keyValues)) {
      keyValues = __arraySlice(arguments, 1);
    }

    this.entityType = entityType;
    entityType.keyProperties.forEach(function (kp, i) {
      // insure that guid keys are comparable.
      if (kp.dataType === DataType.Guid) {
        keyValues[i] = keyValues[i] && keyValues[i].toLowerCase();
      }
    });

    this.values = keyValues;
    this._keyInGroup = createKeyString(keyValues);

  }
function EntityKey(entityType, keyValues) {
    assertParam(entityType, "entityType").isInstanceOf(EntityType).check();
    var subtypes = entityType.getSelfAndSubtypes();
    if (subtypes.length > 1) {
      this._subtypes = subtypes.filter(function (st) {
        return st.isAbstract === false;
      });
    }

    if (!Array.isArray(keyValues)) {
      keyValues = __arraySlice(arguments, 1);
    }

    this.entityType = entityType;
    entityType.keyProperties.forEach(function (kp, i) {
      // insure that guid keys are comparable.
      if (kp.dataType === DataType.Guid) {
        keyValues[i] = keyValues[i] && keyValues[i].toLowerCase();
      }
    });

    this.values = keyValues;
    this._keyInGroup = createKeyString(keyValues);

  }
function EntityKey ( entityType , keyValues ) { assertParam ( entityType , "entityType" ) . isInstanceOf ( EntityType ) . check ( ) ; var subtypes = entityType . getSelfAndSubtypes ( ) ; if ( subtypes . length > 1 ) { this . _subtypes = subtypes . filter ( function ( st ) { return st . isAbstract === false ; } ) ; } if ( ! Array . isArray ( keyValues ) ) { keyValues = __arraySlice ( arguments , 1 ) ; } this . entityType = entityType ; entityType . keyProperties . forEach ( function ( kp , i ) { // insure that guid keys are comparable. if ( kp . dataType === DataType . Guid ) { keyValues [ i ] = keyValues [ i ] && keyValues [ i ] . toLowerCase ( ) ; } } ) ; this . values = keyValues ; this . _keyInGroup = createKeyString ( keyValues ) ; }
An EntityKey is an object that represents the unique identity of an entity.  EntityKey's are immutable.

@class EntityKey
 
Constructs a new EntityKey.  Each entity within an EntityManager will have a unique EntityKey.
@example
assume em1 is an EntityManager containing a number of existing entities.
var empType = em1.metadataStore.getEntityType("Employee");
var entityKey = new EntityKey(empType, 1);
EntityKey's may also be found by calling EntityAspect.getKey()
@example
assume employee1 is an existing Employee entity
var empKey = employee1.entityAspect.getKey();
Multipart keys are created by passing an array as the 'keyValues' parameter
@example
var empTerrType = em1.metadataStore.getEntityType("EmployeeTerritory");
var empTerrKey = new EntityKey(empTerrType, [ 1, 77]);
The order of the properties in the 'keyValues' array must be the same as that
returned by empTerrType.keyProperties
@method <ctor> EntityKey
@param entityType {EntityType} The {{#crossLink "EntityType"}}{{/crossLink}} of the entity.
@param keyValues {value|Array of values} A single value or an array of values.
An EntityKey is an object that represents the unique identity of an entity . EntityKey s are immutable .