2008-12-16 73 views
1

我使用LINQ to SQL和使用TransactionScopre我將在SQL中的數據。正在使用TransactionScope導致刪除語句再次數據庫?

_context.tblDataContainer.InsertOnSubmit(migrationData); 

using (TransactionScope ts = new TransactionScope()) 
{ 
    _context.SubmitChanges(); 
    ts.Complete(); 
} 

這樣做,linq執行SQL上的任何刪除語句。我已經使用上下文日誌檢查,並沒有delete語句發給數據庫,但我的數據庫管理員說,我正在執行在本次交易的一些delete語句。對此有何看法?

回答

1

我們確實需要更多地瞭解您的架構。請記住,L2S是聲明性的 - 你宣佈你想要做什麼而不是如何去做。這是完全有可能的是,L2S引擎看着你的數據庫,發現了一些類型約束或其他情況,並決定最好的方式安全地插入數據會先刪除記錄。雖然這是一個延伸,但可能會發生。

然而,存在其他的可能性,如觸發器。你檢查了表是否正在做一個插入,看看是否有任何觸發器可能會在其他地方刪除數據?

+0

上有沒有表觸發器,沒有join.Its簡單insert.I在想,如果有一個地方刪除操作系走位之前插入提供表沒有triggers.Is它與交易相關的堂妹在DB的情況下, ,在事務下,thr是一個刪除語句,並在那之後插入語句 – Kapil 2008-12-16 14:04:26