我试图删除通过nuget包sqlite-net-pcl(1.5.166-beta)为Xamarin.forms访问的sqlite数据库表中的所有项目。
方法DeleteAllAsync,根据Visual Studio的代码完成菜单, 采用'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>);
}
}
答案 0 :(得分:2)
您只需指定要使用Type
的{{1}},它就会删除表格中的所有项目。
DeleteAllAsync
internal async Task DeleteAll()
{
await database.DeleteAllAsync<Item>();
}
是sqlite-net-pcl v1.5中的新增内容,v1.5仍处于预发布状态。官方文档在这里,一旦v1.5升级为稳定版,它可能会更新为包括DeleteAllAsync
:
https://github.com/praeclarum/sqlite-net/wiki
更快的方法
删除表中所有项目的更快捷方法是删除表并重新创建它(假设表中有很多项)。
DeleteAllAsync
完成示例
这是一个完整的示例,有助于提高性能并避免多线程问题。
internal async Task DeleteAll()
{
await database.DropTableAsync<Item>();
await database.CreateTableAsync<Item>();
}