استفاده از Transaction در EntityFramework

به نظرم دلیل اصلی استفاده از 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(); }
                }