插入/更新/删除

Datory 使用 Repository 數據倉庫的(de) 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

以(yǐ)上(shàng)代碼插入數據并返回新數據的(de) Id 自增長字段值。

更新數據

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

以(yǐ)上(shàng)代碼更新數據并返回布爾值,用于(yú)指示是(shì)否更新成功。

除了(le/liǎo)對整條數據進行更新,我們也(yě)可以(yǐ)隻更新指定字段的(de)值:

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

以(yǐ)上(shàng)代碼将更新 Id 爲(wéi / wèi)100數據行的(de) Title 以(yǐ)及 Count 字段的(de)值。

删除數據

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

await repository.DeleteAsync(100);
1

我們也(yě)可以(yǐ)使用 Query 對象,指定需要(yào / yāo)删除的(de)數據:

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

如果我們希望清除表内的(de)所有數據,我們可以(yǐ)不(bù)傳參數:

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