使用ORM在sqlite表中插入行返回KeyNotFoundException

时间:2016-10-05 10:25:02

标签: c# sqlite xamarin

我正在尝试在sqlite表中插入数据,但是我收到错误

这是我创建表格的方式

gift_cards_amount

conn是SQLiteConnection对象

base_gift_cards_amount

然后我尝试插入这样的数据

gift_cards

它给了我这个错误

  

[ERROR]致命的未处理的异常:System.Collections.Generic.KeyNotFoundException:字典中没有给定的键。   块引用

我试图提供id = -1,id = 1,我仍然得到同样的错误。 非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

错误消息可能表示您没有任何主键。由于我看到你已经为id编写了主键,我认为你没有使用正确的属性。

参见Xamarin提供的文章,它会很有用。我开始自己使用它并成功了。

https://developer.xamarin.com/recipes/android/data/databases/sqlite/#Recipe

祝你好运!

答案 1 :(得分:0)

我不确定,为什么它被标记为可以为空,尝试将其作为整数

public int? id { get; set; } // This is a nullable field. 
public int id { get; set; } 

我建议有一个实体基地

public class EntityBase 
{
  [SQLite.PrimaryKey, SQLite.AutoIncrement]
  public int? id { get; set; }
}

[SQLite.Table("table_sessions")]    
public class table_sessions : EntityBase 
{
    public string sessionid { get; set; }
    public DateTime created { get; set; 
}