internal Key ResolveForeignKeyReferences(Type type, Key key) { // determine whether we need to translate names if (key.SourceType != null && key.SourceType != type) { // translate column names in key to foreign key name in table used by type Key fkKey = new Key(type, false); ObjectMap map = ObjectFactory.GetMap(this, key.SourceType); ObjectMap fkMap = ObjectFactory.GetMap(this, type); foreach (string name in key.Keys) { string fieldName = key.isPropertyKeys ? name : map.GetPropertyName(name); FieldMap fkfm = fkMap.GetForeignKeyFieldMap(map.Type, fieldName); fkKey[fkfm.ColumnName] = key[name]; } key = fkKey; } return(key); }