make efcore save and edit data using transactions, so if the saving fails the data wont get corrupted.