private void SetExcepton(System.Data.Entity.Validation.DbEntityValidationException ex)
        {
            foreach (System.Data.Entity.Validation.DbEntityValidationResult vr in ex.EntityValidationErrors)
            {
                var dte = new DbTransException();
                dte.Type  = "DbEntityValidationException";
                dte.Lable = vr.Entry.Entity.ToString();

                foreach (System.Data.Entity.Validation.DbValidationError ve in vr.ValidationErrors)
                {
                    dte.Exception.Add(new DbTransExceptionError
                    {
                        Message   = ve.ErrorMessage,
                        Reference = ve.PropertyName
                    });
                }
                Exception.Add(dte);
            }
        }
        public bool Create(T Entity)
        {
            try
            {
                db.Set <T>().Add(Entity);
                db.SaveChanges();
                return(true);
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException ex)
            {
                SetExcepton(ex);
                return(false);
            }
            catch (System.Data.Entity.Infrastructure.DbUpdateException ex)
            {
                // TODO : Need to re-evaluate, How clectively handel exceptions
                // Related to Entity
                var dte = new DbTransException();
                //dte.Type = "OracleException";
                dte.Lable = ""; //ex.Entries.;

                dte.Exception.Add(new DbTransExceptionError
                {
                    Message   = ex.InnerException.InnerException.Message,
                    Reference = ""
                });

                Exception.Add(dte);

                return(false);
            }
            catch (Exception ex)
            {
                throw ex;
                //return false;
            }
        }