我使用sqliteDB开发了一个应用程序。但是,当我想删除某些内容时,总是会出错...这是我的代码: 型号:
class Einkauf
{
private int _id;
[PrimaryKey, AutoIncrement]
public int Id
{
get
{
return _id;
}
set
{
_id = value;
}
}
[MaxLength(100)]
public string EssenName { get; set; }
public int Stueckzahl { get; set; }
}
删除功能:
public partial class EinkaufAdd : ContentPage
{
private SQLiteAsyncConnection _connection;
private ObservableCollection<Einkauf> _einkauf;
public EinkaufAdd ()
{
InitializeComponent ();
}
private async void Button_Clicked(object sender, EventArgs e)
{
var response = await DisplayAlert("Achtung", "Wollen sie wirklich
alle Einträge löschen?", "Ja", "Nein");
if (response == true)
{
//SQLITE
_connection = DependencyService.Get<ISQLiteDb>().GetConnection();
await _connection.CreateTableAsync<Einkauf>();
var einkauf = await _connection.Table<Einkauf>().ToListAsync();
await _connection.DeleteAsync(einkauf);
}
}
当我单击按钮时,出现一个错误,称为:
“ System.NotSupportedException:”无法删除列表`1:它没有PK“
”。它只是一个“删除所有”按钮,有人可以帮我吗?
ps .: debugginig告诉我,“ einkauf”对象具有id,essenname和所有这些东西。
答案 0 :(得分:1)
Delete()
方法采用单个对象作为参数。您正在尝试删除整个列表
// this returns a list of every item in the table
var einkauf = await _connection.Table<Einkauf>().ToListAsync();
await _connection.DeleteAsync(einkauf);
要全部删除,请遍历列表
foreach (var x in einkauf) {
await _connection.DeleteAsync(x);
}