Xamarin Forms 从 sqlite 数据库中删除

Mir*_*lle 2 c# linq sqlite xamarin.forms

我有一个类公告,我有一个 id 列表,我正在使用 nuget 包:sqlite-net-pcl。如果我有公告,如何从我的公告表中删除公告。我尝试使用 linq,例如: await connection.DeleteAsync(announcement).Where(...) 但我不能将 Where 与 DeleteAsync 一起使用,所以我尝试了

var query = connection.Table<Announcement>().Where(announcement=>announcement.AnnouncementId == announcementId)
Run Code Online (Sandbox Code Playgroud)

它给了我这个错误:System.NotSupportedException:无法删除 AsyncTableQuery`1:它没有 PK

Iva*_*nF. 6

我想你正在寻找这样的东西:

public static int Delete(string url)
{
    using (var databaseManager = DatabaseManager.Instance)
    {
        lock (databaseManager)
        {
            return databaseManager.Database.Table<File>().Delete(x => x.Url == url);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是using SQLite;
https://developer.xamarin.com/guides/android/data-and-cloud-services/data-access/part-3-using-sqlite-orm/