2017-02-17 9 views
0

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つの行しか期待しませんでした。 何か間違っていますか?
これらの無駄な要素を手動でクリーニングする必要がありますか?
おかげで、
アレックス

答えて

0

トラブルのため申し訳ありません何も、。
私のコードでは、臨床試験のIDはいくつかの文言の間に "失われていました"。それが問題の原因でした。

関連する問題