به نظرم دلیل اصلی استفاده از transaction حفظ یکپارچگی دیتا و جلوگیری از Concurency هست. طی این حالت تا زمانی که transaction.Commit();
نشه اطلاعات ذخیره نخواهد شد.
using (var transaction = context.Database.BeginTransaction()) { try { if (CodeList.Count > 0) { //Your codes var _obj = JsonConvert.DeserializeObject<Db_Model.FetchData>(JsonConvert.SerializeObject(fetchData)); context.FetchDatas.Add(_obj); context.SaveChanges(); _Result = _obj.ID; for (int i = 0; i < CodeList.Count; i++) { // Other codes var subobj = JsonConvert.DeserializeObject<Db_Model.Vcode>(JsonConvert.SerializeObject(code)); context.Vcodes.Add(subobj); } context.SaveChanges(); transaction.Commit(); } } catch (Exception err) { transaction.Rollback(); } }