private CommandParameters InstanceToParameters(object instance, EntityMapping mapping) { CommandParameters commandParameters = new CommandParameters(); commandParameters["Id"] = mapping.IdColumn.ReaderWriter.Read(instance); foreach (ColumnMapping columnMapping in mapping.IndexedColumns) { object obj = columnMapping.ReaderWriter.Read(instance); if (obj != null && obj != DBNull.Value && (obj is string && columnMapping.MaxLength > 0)) { int length = ((string)obj).Length; if (length > columnMapping.MaxLength) { throw new StringTooLongException(string.Format("An attempt was made to store {0} characters in the {1}.{2} column, which only allows {3} characters.", length, mapping.TableName, columnMapping.ColumnName, columnMapping.MaxLength)); } } commandParameters[columnMapping.ColumnName] = obj; } return(commandParameters); }