我使用SQLite扩展来创建数据库。 OnetoOne关系和ManytoOne关系工作正常,我使用InsertorReplacewithChildren来管理新元素和修改元素。但是当谈到OnetoMany的关系时,我遇到了一些问题。 关注SQLite-Net Extensions Manual我在我的父类中添加了这个:
[PrimaryKey, AutoIncrement]
public int ID_child { get; set; }
...
[OneToMany(CascadeOperations = CascadeOperation.All)]
public List<ClinicalTest> ClinicalTests_DB { get; set; }
这在我的孩子班上:
[PrimaryKey, AutoIncrement]
public int ID_clinicaltest { get; set; }
[ForeignKey(typeof(Child))]
public int ID_child { get; set; }
问题是,如果我在ClinicalTest中更改某个元素的某些字段并调用UpdatewithChildren(FatherClassInstance)或InsertorReplacewithChildren(FatherClassInstance),结果是在ClinicalTests表中我有两行:一行是更新的元素(用正确的foreingkey),一个是旧元素(没有任何foreingkey)
我本来期望只有一行有更新的元素。
我做错了吗?
我应该手动清理这些无用的元素吗?
谢谢,
亚历
答案 0 :(得分:0)
没什么,抱歉这件事 在我的代码中,临床测试的ID已经丢失了#34;在一些段落中。这就是问题的原因。