我有以下两个课程。当我保存包含多个项目 (B) 的 A 时,我得到了预期的结果。但是,当我保存对 A 的更改时,例如一个空的 Items(B) 列表,我希望表 B 中的所有元素都会自动被删除,因为它们没有在任何地方引用(不打算单独查询它们)。相反,每个项目的外键 (IDofA) 在表中设置为 Null。在我的情况下,这导致表(B)无限增长,因为 A 的某些对象永远不会被删除,只是更新。
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);
});
}