PetaPoco / NPoco - 使用(子)集合属性保存对象

时间:2016-02-15 05:03:29

标签: c# asp.net-mvc petapoco

我正在使用带有SQL Server的NPoco,并且有一个包含集合属性的父对象。这一切都可以使用FetchOneToMany加载。

我想保存父对象和子集合。将父级传递给Update()或Insert()不会更改子集合的DB。我是否必须手动迭代子集合并删除/插入/更新每个项目?

我不介意手动这样做;我有一个事务中的代码,但它删除集合中的所有对象,并重新添加新的,这似乎有点狡猾。

所以,我真的需要问一下,如果有更好的方法,我可能会失踪。

谢谢。

1 个答案:

答案 0 :(得分:1)

是的,你必须手动完成。

为了避免删除然后插入,您必须在UI中保留项目ID(我总是有一个自动增量主键)并将它们发布到后端,以便您可以更新,插入或删除。

我使用ASP.net MVC,在那里我保留了一个带有ID的隐藏字段的所有项目的列表。在我的用户界面中,删除项目的唯一方法是清除所有字段,但隐藏的ID仍然存在,所以稍后我可以删除数据库中的项目。 对于插入/更新,它很简单,因为您只需要检查ID是否为空。