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); }
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); }