Skip to content

CRUD Updating

berkeleybross edited this page Mar 19, 2018 · 1 revision
void Update<TEntity>(TEntity entity, int? commandTimeout = null, bool? verifyAffectedRowCount = null);

Updates the entity by using it's primary key.

SqlCommandResult UpdateRange<TEntity>(IEnumerable<TEntity> entities, int? commandTimeout = null);

Efficiently updates multiple entities in the database.

📝 for performance, it is recommended to wrap all bulk actions in a transaction.

Examples

[Table("Users")]
public class UserEntity
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}
Update a single entity
var entity = this.connection.Find<UserEntity>(5);
entity.Name = "Little bobby tables";
database.Update(entity);

MS-SQL 2012 +

UPDATE [Users]
SET [Name] = @Name, [Age] = @Age
WHERE [Id] = @Id

PostgreSQL

UPDATE user
SET name = @Name, age = @Age
WHERE id = @Id
Update multiple entities
using (var unitOfWork = database.StartUnitOfWork())
{
    var entities = unitOfWork.GetRange<UserEntity>(new { Age = 10 });

    foreach (var entity in entities)
    {
        entity.Name = "Little bobby tables";
    }

    unitOfWork.UpdateRange(entities);

    unitOfWork.SaveChanges();
}

MS-SQL 2012 +

UPDATE [Users]
SET [Name] = @Name, [Age] = @Age
WHERE [Id] = @Id

PostgreSQL

UPDATE user
SET name = @Name, age = @Age
WHERE id = @Id