2008-10-09 136 views
3

我有一個使用LinqtoSQL的強大數據訪問層的項目,用於處理任何涉及我們數據庫的事情。我需要構建一個幫助類,將CLSA對象的一些常見不良操作連接到LinqToSql。在我需要在桌子上進行截斷操作之前,所有事情都一直在進行,我所有的都是「刪除」方法。什麼是正確的LINQtoSQL-ish方法來執行表截斷?

嗯。快速搜索顯示有些人正在使用YourContext.ExecuteCommand(),這很好,但我現在儘可能地儘可能地使用「t-sql-less」。

有沒有LINQ方式來執行truncate on a table?或者我只是clueless

回答

3

如果不進行自定義T-SQL查詢,這是不可能的。正如您可能已經知道的那樣,執行.​​Delete()和SubmitChanges後綴會導致DELETE語句。

當然,你可以創建一個截斷表的存儲過程,然後從LINQ調用過程,但這不是你想要的我相信的。

+0

呀。這是最符合OOP的方法,但它仍然需要傳遞一個字符串變量。我有一個名爲「Page」的表格,它出於明顯的原因需要在C#/ ASPNET世界中成爲「頁面」。因此截斷該表需要開發人員知道「頁面」==實體頁面。 – 2008-10-09 20:24:25

+0

如果你製作了一個sproc,你可以通過將一個「Pages」-ish C#sproc名稱映射到數據庫中截斷的實際sproc來解決這個問題。如果您必須採用TSQL方式,那麼您可以將該方法添加到生成的部分LINQ類(取決於您如何製作它們)並以這種方式隱藏它。 – 2008-10-09 20:33:46

2

你可以做這樣的事情:

yourDataContext.ExecuteCommand("TRUNCATE TABLE YourTable"); 
相關問題