Друг вариант е да обвиете всичките си 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, зададен на true. SQL командата, генерирана от Linq2Sql, няма да знае да включи колоната и стойността за идентичност.