internal IDictionary <string, object> GetColumnValuesFromRoute(HttpContextBase context) { RouteValueDictionary routeValues = DynamicDataRouteHandler.GetRequestContext(context).RouteData.Values; Dictionary <string, object> columnValues = new Dictionary <string, object>(); foreach (var column in Columns) { if (Misc.IsColumnInDictionary(column, routeValues)) { MetaForeignKeyColumn foreignKeyColumn = column as MetaForeignKeyColumn; if (foreignKeyColumn != null) { // Add all the foreign keys to the column values. foreach (var fkName in foreignKeyColumn.ForeignKeyNames) { columnValues[fkName] = routeValues[fkName]; } } else { // Convert the value to the correct type. columnValues[column.Name] = Misc.ChangeType(routeValues[column.Name], column.ColumnType); } } } return(columnValues); }