插入/更新/删除

Datory 使用 Repository 數據倉庫的 InsertAsync 方法插入數據,使用 UpdateAsync 方法更新數據,使用 DeleteAsync 方法删除數據。

插入數據

public async Task<int> InsertAsync(DataModel dataModel)
{
    var repository = new Repository<DataModel>(settingsManager.Database, settingsManager.Redis);
    return await repository.InsertAsync(dataModel);
}
1
2
3
4
5

以上代碼插入數據并返回新數據的 Id 自增長(cháng)字段值。

更新數據

public async Task<bool> UpdateAsync(DataModel dataModel)
{
    var repository = new Repository<DataModel>(settingsManager.Database, settingsManager.Redis);
    return await repository.UpdateAsync(dataModel);
}
1
2
3
4
5

以上代碼更新數據并返回布爾值,用于指示是否更新成(chéng)功。

除了對(duì)整條數據進(jìn)行更新,我們也可以隻更新指定字段的值:

var repository = new Repository<DataModel>(settingsManager.Database, settingsManager.Redis);
await repository.UpdateAsync(Q
    .Set("Title", "新标題")
    .Set("Count", 100)
    .Where("Id", 100)
);
1
2
3
4
5
6

以上代碼將(jiāng)更新 Id 爲100數據行的 Title 以及 Count 字段的值。

删除數據

通過(guò)傳遞 Id 字段的值,我們可以删除指定數據:

await repository.DeleteAsync(100);
1

我們也可以使用 Query 對(duì)象,指定需要删除的數據:

var query = Q.Where("CreatedDate", "<", DateTime.Now.AddDays(-1));
await repository.DeleteAsync(query);
1
2

如果我們希望清除表内的所有數據,我們可以不傳參數:

public async Task DeleteAllAsync()
{
    await repository.DeleteAsync();
}
1
2
3
4