我正在尝试删除通过 Xamarin.forms 的 nuget 包 sqlite-net-pcl(1.5.166-beta) 访问的 sqlite 数据库表中的所有项目。
根据 Visual Studio 的代码完成菜单,DeleteAllAsync 方法采用“TableMapping Map”。您能帮我找出在这种情况下“TableMapping Map”是什么吗?
在哪里可以找到 sqlite-net-pcl nuget 包的文档?nuget 上没有列出它的项目页面。
下面的代码片段提供了上下文和对DeleteAllAsync的错误调用
public class ItemDb
{
readonly SQLiteAsyncConnection database;
public ItemDb(string dbPath)
{
database = new SQLiteAsyncConnection(dbPath);
database.CreateTableAsync<Item>().Wait();
}
internal void DeleteAll()
{
database.DeleteAllAsync(database.Table<Item>);
}
}
Run Code Online (Sandbox Code Playgroud)
您只需指定Type
要使用的DeleteAllAsync
,它就会从表中删除所有项目。
internal async Task DeleteAll()
{
await database.DeleteAllAsync<Item>();
}
Run Code Online (Sandbox Code Playgroud)
DeleteAllAsync
是 sqlite-net-pcl v1.5 中的新功能,v1.5 仍处于预发布阶段。DeleteAllAsync
官方文档在这里,一旦 v1.5 升级到稳定
版本,它可能会更新:https: //github.com/praeclarum/sqlite-net/wiki
更快的方法
删除表中所有项目的更快方法是删除表并重新创建它(假设表有许多项目)。
internal async Task DeleteAll()
{
await database.DropTableAsync<Item>();
await database.CreateTableAsync<Item>();
}
Run Code Online (Sandbox Code Playgroud)
完整示例
这是一个完整的示例,有助于提高性能并避免多线程问题。
internal async Task DeleteAll()
{
await database.DeleteAllAsync<Item>();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4117 次 |
最近记录: |