插入/更新/删除
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
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
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
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
2
如果我們希望清除表内的所有數據,我們可以不傳參數:
public async Task DeleteAllAsync()
{
await repository.DeleteAsync();
}
1
2
3
4
2
3
4