Hi Techies
There is a very good feature to achieve roll back in LINQ using TransactionScope.
For an example you are having two table named as Customer and customerDetails.
As i've declared two tables ,Let's create a scenario , Suppose you have updated some value in current context using db.SubmitChanges() for customer table whilst other hand any exception occurs for customerDetails table then it would be weird .
Our main target is to achieve roll back transactions if something goes wrong ,rather than saving uncompleted code.
The code segment given below:
using (TransactionScope ts = new TransactionScope())
{
Customer customer = new Customer();
db.Customer.InsertOnSubmit(customer); // To insert into the Customer table
db.SubmitChanges(); // inserted into database, but transaction not yet committed
CustomerDetails objCustomerDetails = new CustomerDetails(); // Creating an object of CustomerDetails
db.CustomerDetails.InsertOnSubmit(objCustomerDetails); // queues up insert to Customer table
db.SubmitChanges(); // insert done in db but still not committed
ts.Complete(); // The inserted in above statement are committed to the db
}
This is the optimum way i found during last day .So sharing my thoughts.
Will try to explore more in future.
Cheers .Net