Example #1
0
        public void Update <T>(T instance)
        {
            var tableName    = _conventionReader.GetTableName <T>();
            var columnValues = _conventionReader.GetColumnValuesForInsertOrUpdate(instance);

            var primaryKeyColumn = _conventionReader.GetPrimaryKeyColumnName <T>();
            var primaryKeyValue  = _conventionReader.GetPrimaryKeyValue(instance);

            var constraintExpression = QueryExpression.Create(new EqualsExpression(primaryKeyColumn, primaryKeyValue));

            var command = _sqlGenerator.CreateUpdateCommand(tableName, constraintExpression, columnValues);

            _dbCommandExecutor.ExecuteNonQuery(command, ConnectionString);
        }
Example #2
0
        private IEnumerable <TCommand> CreateInsertCommands <TEntity, TCommand>(IEnumerable <TEntity> entities, Func <string, IDictionary <string, object>, TCommand> f)
        {
            var commands = new List <TCommand>();

            foreach (var entity in entities)
            {
                var columnValues = _conventionReader.GetColumnValuesForInsertOrUpdate(entity);
                var tableName    = _conventionReader.GetTableName <TEntity>();

                var command = f(tableName, columnValues);

                commands.Add(command);
            }

            return(commands);
        }