public override IList<IdentityKey> GetAllIdentityKeys()
        {
            string sql = @"select IdentityName=a.name,TableName=b.name  from  syscolumns  a left join sysobjects b on a.id=b.id
                           where COLUMNPROPERTY(a.id,a.name,'IsIdentity')=1";

            this.Database.Connection.Open();
            DataTable identityKeyTable = this.Database.ExecuteDataTable(sql, false);
            this.Database.Connection.Close();

            if (identityKeyTable == null || identityKeyTable.Rows.Count == 0)
            {
                return new List<IdentityKey>();
            }

            IList<IdentityKey> identityKeys = new List<IdentityKey>();
            IdentityKey identityKey = null;

            foreach (DataRow row in identityKeyTable.Rows)
            {
                identityKey = new IdentityKey();
                identityKey.TableName = row["TableName"].AsString();
                identityKey.Key = row["IdentityName"].AsString();

                if (!string.IsNullOrWhiteSpace(identityKey.TableName) ||
                    !string.IsNullOrWhiteSpace(identityKey.Key))
                {
                    identityKeys.Add(identityKey);
                }
            }

            return identityKeys;
        }
        public override IList<IdentityKey> GetAllIdentityKeys()
        {
            var tableColumns = GetAllColumns();

            if (tableColumns == null || tableColumns.Count() == 0)
            {
                return new List<IdentityKey>();
            }

            IList<IdentityKey> identityKeys = new List<IdentityKey>();
            IdentityKey identityKey = null;

            foreach (var tableColumn in tableColumns)
            {
                if (tableColumn.ColumnFlag == 90 && string.Equals(tableColumn.DataType.Trim(), "3"))
                {
                    identityKey = new IdentityKey();
                    identityKey.TableName = tableColumn.TableName.Trim();
                    identityKey.Key = tableColumn.ColumnName.Trim();

                    identityKeys.Add(identityKey);
                }
            }

            return identityKeys;
        }
        public override IList<IdentityKey> GetAllIdentityKeys()
        {
            string identitySql = @"SELECT  TABLE_NAME,COLUMN_NAME  FROM INFORMATION_SCHEMA.Columns
                  WHERE TABLE_SCHEMA='{0}' AND EXTRA ='auto_increment' AND COLUMN_KEY = 'PRI'";
           
            DataTable identityTable = GetTable(identitySql);

            if (identityTable == null || identityTable.Rows.Count == 0)
            {
                return new List<IdentityKey>();
            }

            IList<IdentityKey> identityKeys = new List<IdentityKey>();
            IdentityKey identityKey = null;

            foreach (DataRow row in identityTable.Rows)
            {
                identityKey = new IdentityKey();
                identityKey.TableName = row["TABLE_NAME"].AsString(); ;
                identityKey.Key = row["COLUMN_NAME"].AsString(); ;
                identityKeys.Add(identityKey);      
            }

            return identityKeys;
        }
        public override IList<IdentityKey> GetAllIdentityKeys()
        {

            IEnumerable<TableColumn> tableColumns = GetAllTableColumns();

            if (tableColumns == null || tableColumns.Count() == 0)
            {
                return new List<IdentityKey>();
            }

            IList<IdentityKey> identityKeys = new List<IdentityKey>();
            IdentityKey identityKey = null;

            foreach (var tableColumn in tableColumns)
            {
                if (tableColumn.IsPrimaryKey && string.Equals(tableColumn.DataType.Trim().ToUpper(), INTERGE))
                {
                    identityKey = new IdentityKey();
                    identityKey.TableName = tableColumn.TableName.Trim();
                    identityKey.Key = tableColumn.ColumnName.Trim();

                    identityKeys.Add(identityKey);
                } 
            }

            return identityKeys;
        }