DBを作成するためにSQLite拡張機能を使用しています。 OnetoOneリレーションとManytoOneリレーションは正常に動作しますが、私はInsertorReplacewithChildrenを使用して新しい要素や変更された要素を管理しています。しかし、それはOnetoMany関係になると私はいくつかの問題があります。 はSQLite-Net Extensions Manual後、私は私の親クラスでこれを追加しました:Updatewithchildren SQLite.netの拡張機能は古い要素を置き換えません
[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とIの要素のいくつかのフィールドを変更した場合UpdatewithChildren(FatherClassInstance)またはInsertorReplacewithChildren(FatherClassInstance)のいずれかを呼び出すと、ClinicalTestsテーブルに2つの行があります.1つは更新された要素(正しいforeingkey)で、もう1つは古い要素(foreingkeyなし)です。
私は、更新された要素でただ1つの行しか期待しませんでした。 何か間違っていますか?
これらの無駄な要素を手動でクリーニングする必要がありますか?
おかげで、
アレックス