एक अन्य विकल्प अपने सभी Linq2Sql कॉल को TransactionScope() में लपेटना है। यह उन सभी को एक ही संबंध में चलने के लिए बाध्य करना चाहिए।
using System.Transactions; // Be sure to add a reference to System.Transactions.dll to your project.
// ... in a method somewhere ...
using (System.Transaction.TransactionScope trans = new TransactionScope())
{
using(YourDataContext context = new YourDataContext())
{
context.ExecuteCommand("SET IDENTITY_INSERT MyTable ON");
context.ExecuteCommand("yourInsertCommand");
context.ExecuteCommand("SET IDENTITY_INSERT MyTable OFF");
}
trans.Complete();
}
// ...
हालांकि, अगर आप कुछ ऐसा करने की कोशिश कर रहे हैं:
context.ExecuteCommand("SET IDENTITY_INSERT MyTable ON");
context.MyTable.InsertOnSubmit(myTableObject)
context.SubmitChanges()
context.ExecuteCommand("SET IDENTITY_INSERT MyTable OFF");
आप शायद अन्य मुद्दों में भाग लेंगे, खासकर यदि पहचान कॉलम में IsDbGenerated विशेषता सत्य पर सेट है। Linq2Sql द्वारा उत्पन्न SQL कमांड को पहचान कॉलम और मान को शामिल करना नहीं पता होगा।