2010-03-08 68 views
0

標記某些實體DeleteOnSubmit()的最佳方式是什麼?有沒有辦法檢查並向上下文說這是刪除?確保LINQ to SQL實體在提交時刪除

例如:我有一個實體引用一個EntitySet <>,我從8個實體中的4個實體中刪除。提交更改時,我想在這4個上說DeleteOnSubmit()!這種情況也應該在單個EntityRef <>上播放。

當然DataContext居住在另一層,所以......抓住,改變,發回是工作。

謝謝。

回答

0

看看DeleteAllOnSubmit()。你通過這個方法來刪除一個實體列表。

+0

我不能通過我的所有EntitySet刪除,我將失去他們所有,也許你的意思是跟蹤另一個List <>中的實體Id並使用它們DeleteOnSubmit()這些實體? – 2010-03-08 18:25:11

1

根據您的架構描述,這很難回答。僅僅因爲你使用的是分層的方式並不意味着你不能撥打DeleteOnSubmit ......你只需要調用你自己的方法來包裝我所假設的。

除非你在更新例程中實例化你的DataContext對象。在這種情況下,你不得不做其他事情。你的數據層可能會暴露像MarkForDelete()這樣的方法,它只是將實體添加到集合中,然後公開一個單獨的SubmitChanges(),它對收集的項目進行迭代以刪除,將它們附加到datacontext,然後執行實際的DeleteAllOnSubmit()調用。

這就是說,我從來沒有真正打擾整個實體序列化/反序列化/重新連接的東西,因爲它似乎fraught with peril。我通常只是收集列表中的主鍵,選擇實體並重新刪除它們。沒有更多的工作,真的。

+0

昨天我用這個方法... thanx回覆 – 2010-03-09 13:57:38