예제 #1
0
 /// <summary>
 ///提交当前单元操作的结果
 /// </summary>
 /// <returns></returns>
 public int Commit()
 {
     if (IsCommitted)
     {
         return(0);
     }
     try
     {
         int result = Context.SaveChanges();
         IsCommitted          = true;
         Context.Database.Log = (sql) =>
         {
             if (string.IsNullOrEmpty(sql) == false)
             {
                 Console.WriteLine("************sql执行*************");
                 Console.WriteLine(sql);
                 Console.WriteLine("************sql结束************");
             }
         };
         return(result);
     }
     catch (DbUpdateException e)
     {
         if (e.InnerException != null && e.InnerException.InnerException is SqlException)
         {
             SqlException sqlEx = e.InnerException.InnerException as SqlException;
             string       msg   = DBErrorType.GetSqlExceptionMessage(sqlEx.Number);
         }
         throw;
     }
 }
예제 #2
0
        public DatabaseException(String message, SqlException innerException)
            : base(message, innerException)
        {
            switch(innerException.Number)
            {
                case 2627:
                    if (innerException.Message.IndexOf("PK_tblMemberProfile") > -1)
                    {
                        ErrorType = DBErrorType.DuplicateEmail;
                    }
                    else if (innerException.Message.IndexOf("IX_tblMemberProfile_strScreenName") > -1)
                    {
                        ErrorType = DBErrorType.DuplicateRegistration;
                    }

                    break;
                default:
                    break;
            }
        }