Yes, this is the expected behavior. When SaveChanges() method throws exception, the transaction is rolled-back and everything which is added in the context will be removed. So in your case if the transaction failed, you should add all objects again in the context and execute SaveChanges().
I hope that helps. If any other questions arise do not hesitate to contact us again.
OpenAccess ORM is now Telerik Data Access
. For more information on the new names, please, check out the Telerik Product Map