2016-02-15 36 views
1

我在SQL Server中使用NPoco,並擁有一個包含集合屬性的父對象。這一切使用FetchOneToMany加載罰款。PetaPoco/NPoco - 保存具有(子)收集屬性的對象

我想保存父對象和子集合。將父項傳遞給Update()或Insert()不會更改子集合的數據庫。我是否必須手動迭代子集合並根據需要刪除/插入/更新每個項目?

我不介意手動做;我有一個事務中的代碼,但是它刪除了集合中的所有對象,並重新添加了新的對象,這似乎有點不妥。

所以,我真的需要問,以防萬一有更好的辦法,我可能會失蹤。

謝謝。

回答

1

是的,你必須手動完成。

爲了避免刪除,然後插入你必須保持UI中的項目ID(我總是有一個自動增量主鍵),並將它們發佈到後端,以便更新,插入或刪除。

我使用ASP.net MVC,在那裏我保留了一個帶ID的隱藏字段的所有項目的列表。在我的用戶界面中,刪除項目的唯一方法是清除所有字段,但隱藏的ID仍然存在,所以稍後我可以刪除數據庫中的項目。 對於插入/更新很容易,因爲您只需檢查ID是否爲空。

+1

感謝您確認我的方法。對於刪除,我寫了一個方法,比較原始集合和新集合(提交保存),並刪除任何區別。 – markau