0
私は次の2つのクラスを持っています。 複数のアイテム(B)を含むAを保存すると、予期した結果が得られます。 しかし、空のList of Items(B)のような変更をAに保存すると、テーブルBのすべての要素がどこからでも参照されないため自動的に削除されることが予想されます。 代わりに、テーブル内の各項目の外部キー(IDofA)がNullに設定されています。 私の場合、Aのオブジェクトの一部が決して削除されず、更新されたため、これは無限に成長するテーブル(B)につながります。SQLite.Net拡張 - 更新時に子供を削除
public class A
{
public string Name{ get; set; }
[OneToMany(CascadeOperations = CascadeOperation.All)]
public List<B> Items { get; set; }
}
public class B
{
[ForeignKey(typeof(A))]
public string IDofA { get; set; }
}
//This is the Generic Save Method that I use for all the Objects
public virtual void Save(T element)
{
CreateID(element);
if (!RuntimeCache.Any(x => x.ID == element.ID))
{
RuntimeCache.Add(element);
}
element.UpdateChangeDate();
RunDBQueryAsync((conn) =>
{
conn.InsertOrReplaceWithChildren(element);
});
}
私はそのための設定があることを期待していた... とにかく、簡単な解決策のための感謝を。 –