2010-03-25 141 views

回答

6

如果你想刪除表中的所有記錄,你這樣做:

context.Entities.DeleteAllOnSubmit(dc.Entities); 

DeleteAllOnSubmit需要一個枚舉集合,雖然我還沒有嘗試過,它應該支持這個(如dc.Entities是一個表),它應該刪除所有的實體。

您必須對所有表格執行此操作;你不能只發出一個命令來做到這一點。或者,您可以創建一個包含所有刪除的過程,並只需將該過程添加到方法列表中即可執行該過程。

另外,要注意的是,如果您在數據庫中有相當大的結果集,那麼刪除並重新創建數據庫中的表比實際執行所有這些刪除操作(FYI)要快。

0

你不能使用linq,因爲linq只是一種查詢語言而不是數據操作語言。 改爲使用dataadapter或createstatement或sql來完成此任務。

+0

技術上我們是正確的,但從問題的上下文來看,OP意味着Linq2SQL – Midhat 2010-03-26 16:16:55

7

考慮到你指的是Linq to SQL,我認爲用一個命令行就不可能做你想做的事情(清除所有的數據庫實體)。

你可以使用SQL truncatedelete命令來刪除實體中的每一個,使用DataContext.ExecuteCommand,如下:

context.ExecuteCommand("DELETE FROM EntityName"); 

或者

context.ExecuteCommand("TRUNCATE TABLE EntityName"); 

雖然,你還是要做到這一點的每個實體都要注意實體之間的關係(外鍵)。

其他參考資料:

相關問題