PetaPoco/NPoco - 使用(子)集合保存对象 属性
PetaPoco/NPoco - saving object with (child) collection property
我将 NPoco 与 SQL 服务器一起使用,并且有一个包含集合 属性 的父对象。这一切都可以使用 FetchOneToMany 正常加载。
我想保存父对象和子集合。将父集合传递给 Update() 或 Insert() 不会更改子集合的数据库。我是否必须手动遍历子集合并根据需要 delete/insert/update 每个项目?
我不介意手动执行此操作;我在一个事务中有代码,但它删除了集合中的所有对象,并重新添加了新的对象,这看起来有点狡猾。
所以,我真的需要问一下,以防有更好的方法我可能会遗漏。
谢谢。
是的,您必须手动完成。
为了避免先删除再插入,你必须在 UI 和 post 中保留项目 ID(我总是有一个自动增量主键),这样你就可以更新,插入或删除。
我使用 ASP.net MVC,我在那里保留了一个包含隐藏字段和 ID 的所有项目的列表。在我的 UI 中,删除项目的唯一方法是清除所有字段,但隐藏 ID 仍然存在,因此稍后我可以删除数据库中的项目。
对于 insert/update 这很容易,因为您只需要检查 ID 是否不为空。
我将 NPoco 与 SQL 服务器一起使用,并且有一个包含集合 属性 的父对象。这一切都可以使用 FetchOneToMany 正常加载。
我想保存父对象和子集合。将父集合传递给 Update() 或 Insert() 不会更改子集合的数据库。我是否必须手动遍历子集合并根据需要 delete/insert/update 每个项目?
我不介意手动执行此操作;我在一个事务中有代码,但它删除了集合中的所有对象,并重新添加了新的对象,这看起来有点狡猾。
所以,我真的需要问一下,以防有更好的方法我可能会遗漏。
谢谢。
是的,您必须手动完成。
为了避免先删除再插入,你必须在 UI 和 post 中保留项目 ID(我总是有一个自动增量主键),这样你就可以更新,插入或删除。
我使用 ASP.net MVC,我在那里保留了一个包含隐藏字段和 ID 的所有项目的列表。在我的 UI 中,删除项目的唯一方法是清除所有字段,但隐藏 ID 仍然存在,因此稍后我可以删除数据库中的项目。 对于 insert/update 这很容易,因为您只需要检查 ID 是否不为空。