Exemple #1
0
        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);
        }