交易 (LINQ to SQL)
LINQ to SQL 支援三種不同的交易模型。 以下按照執行檢查的順序列出這些模型。
明確本機交易
呼叫 SubmitChanges 後,如果 Transaction 屬性已設為 (IDbTransaction) 交易,則會在相同交易的情況下執行 SubmitChanges 呼叫。
順利執行交易後,您必須負責認可或復原此交易。 對應至此交易的連接必須符合用於建構 DataContext 的連接。 如果使用不同的連接,則會擲回例外狀況。
明確可散發交易
您可以在使用中的 Transaction 範圍內呼叫 LINQ to SQL API (包含但不限於 SubmitChanges)。 LINQ to SQL 會偵測到該呼叫在交易的範圍內,而不會建立新交易。 LINQ to SQL 在此情況下也可避免關閉連接。 您可以在此種交易的情況中執行查詢和 SubmitChanges 執行。
隱含交易
當您呼叫 SubmitChanges 時,LINQ to SQL 會查看此呼叫是否在 Transaction 的範圍內,或者 Transaction 屬性 (IDbTransaction) 是否設為使用者啟動的本機交易。 如果兩種交易都找不到,LINQ to SQL 會啟動本機交易 (IDbTransaction) 並用它來執行所產生的 SQL 命令。 當所有 SQL 命令都已順利完成後,LINQ to SQL 會認可本機交易並傳回結果。
請參閱
工作
HOW TO:使用交易括住資料提交 (LINQ to SQL)