private void UpdateAll(PM_ALT_ELEMENT entity)
        {
            ArgumentValidator.CheckForNullArgument(entity, "entity");

            PersistentPM_ALT_ELEMENT PM_ALT_ELEMENTEntity = entity as PersistentPM_ALT_ELEMENT;

            try
            {
                Database  db        = GetDatabaseInstance();
                DbCommand dbCommand = db.GetSqlStringCommand(PM_ALT_ELEMENTDAO.SqlUpdate);

                db.AddInParameter(dbCommand, "@ElementID", DbType.Guid, PM_ALT_ELEMENTEntity.ElementID);
                db.AddInParameter(dbCommand, "@AlertID", DbType.Guid, PM_ALT_ELEMENTEntity.AlertID);
                db.AddInParameter(dbCommand, "@ElementField", DbType.String, PM_ALT_ELEMENTEntity.ElementField);
                db.AddInParameter(dbCommand, "@ElementAlias", DbType.String, PM_ALT_ELEMENTEntity.ElementAlias);
                db.AddInParameter(dbCommand, "@ElementType", DbType.String, PM_ALT_ELEMENTEntity.ElementType);
                db.AddInParameter(dbCommand, "@Sequence", DbType.Int32, PM_ALT_ELEMENTEntity.Sequence);
                db.AddInParameter(dbCommand, "@IsActive", DbType.Boolean, PM_ALT_ELEMENTEntity.IsActive);
                db.AddInParameter(dbCommand, "@RowDeleted", DbType.Boolean, PM_ALT_ELEMENTEntity.RowDeleted);
                db.AddInParameter(dbCommand, "@CreatedBy", DbType.String, PM_ALT_ELEMENTEntity.CreatedBy);
                db.AddInParameter(dbCommand, "@CreatedOn", DbType.DateTime, PM_ALT_ELEMENTEntity.CreatedOn);
                db.AddInParameter(dbCommand, "@ModifiedBy", DbType.String, PM_ALT_ELEMENTEntity.ModifiedBy);
                db.AddInParameter(dbCommand, "@ModifiedOn", DbType.DateTime, PM_ALT_ELEMENTEntity.ModifiedOn);
                int result = db.ExecuteNonQuery(dbCommand);

                if (result == 0)
                {
                    throw new EntityNotFoundException();
                }
            }
            catch (Exception ex)
            {
                ExceptionPolicy.HandleException(ex, ExceptionPolicy.DataAccessDefaultPolicy);
            }
        }
        /// <summary>
        /// Insert with transaction
        /// </summary>
        public PM_ALT_ELEMENT Insert(PM_ALT_ELEMENT entity, DbTransaction transaction)
        {
            ArgumentValidator.CheckForNullArgument(entity, "entity");
            ArgumentValidator.CheckForNullArgument(transaction, "transaction");
            PersistentPM_ALT_ELEMENT PM_ALT_ELEMENTEntity = entity as PersistentPM_ALT_ELEMENT;

            try
            {
                Database  db        = GetDatabaseInstance();
                DbCommand dbCommand = db.GetSqlStringCommand(PM_ALT_ELEMENTDAO.SqlInsert);

                db.AddInParameter(dbCommand, "@ElementID", DbType.Guid, PM_ALT_ELEMENTEntity.ElementID);
                db.AddInParameter(dbCommand, "@AlertID", DbType.Guid, PM_ALT_ELEMENTEntity.AlertID);
                db.AddInParameter(dbCommand, "@ElementField", DbType.String, PM_ALT_ELEMENTEntity.ElementField);
                db.AddInParameter(dbCommand, "@ElementAlias", DbType.String, PM_ALT_ELEMENTEntity.ElementAlias);
                db.AddInParameter(dbCommand, "@ElementType", DbType.String, PM_ALT_ELEMENTEntity.ElementType);
                db.AddInParameter(dbCommand, "@Sequence", DbType.Int32, PM_ALT_ELEMENTEntity.Sequence);
                db.AddInParameter(dbCommand, "@IsActive", DbType.Boolean, PM_ALT_ELEMENTEntity.IsActive);
                db.AddInParameter(dbCommand, "@RowDeleted", DbType.Boolean, PM_ALT_ELEMENTEntity.RowDeleted);
                db.AddInParameter(dbCommand, "@CreatedBy", DbType.String, PM_ALT_ELEMENTEntity.CreatedBy);
                db.AddInParameter(dbCommand, "@CreatedOn", DbType.DateTime, PM_ALT_ELEMENTEntity.CreatedOn);
                db.AddInParameter(dbCommand, "@ModifiedBy", DbType.String, PM_ALT_ELEMENTEntity.ModifiedBy);
                db.AddInParameter(dbCommand, "@ModifiedOn", DbType.DateTime, PM_ALT_ELEMENTEntity.ModifiedOn);

                int result = db.ExecuteNonQuery(dbCommand, transaction);
            }
            catch (Exception ex)
            {
                ExceptionPolicy.HandleException(ex, ExceptionPolicy.DataAccessDefaultPolicy);
            }

            return(PM_ALT_ELEMENTEntity as PM_ALT_ELEMENT);
        }
        private void UpdateSome(PM_ALT_ELEMENT entity, DbTransaction transaction)
        {
            ArgumentValidator.CheckForNullArgument(entity, "entity");
            ArgumentValidator.CheckForNullArgument(transaction, "transaction");

            PersistentPM_ALT_ELEMENT PM_ALT_ELEMENTEntity = entity as PersistentPM_ALT_ELEMENT;

            StringBuilder sqlUpdateSome = new StringBuilder();

            sqlUpdateSome.Append("UPDATE dbo.PM_ALT_ELEMENT SET ");

            PropertyInfo[] propertyInfos        = PM_ALT_ELEMENTEntity.GetType().GetProperties();
            Hashtable      propertyValues       = new System.Collections.Hashtable();
            int            columnCountForUpdate = 0;

            foreach (PropertyInfo propertyInfo in propertyInfos)
            {
                if (EntityMapping.ContainsProperty(propertyInfo.Name))
                {
                    object     propertyValue = propertyInfo.GetValue(PM_ALT_ELEMENTEntity, null);
                    ORProperty property      = EntityMapping[propertyInfo.Name];
                    if (!property.IsPrimaryKey)
                    {
                        if (!PM_ALT_ELEMENTEntity.IsDefaultValue(propertyInfo.Name))
                        {
                            propertyValues[propertyInfo.Name] = propertyValue;

                            sqlUpdateSome.Append(" " + property.ColumnName + " = @" + property.ColumnName + ",");
                            columnCountForUpdate++;
                        }
                    }
                    else
                    {
                        propertyValues[propertyInfo.Name] = propertyValue;
                    }
                }
            }
            if (columnCountForUpdate == 0)
            {
                return;
            }

            sqlUpdateSome.Remove(sqlUpdateSome.Length - 1, 1);
            sqlUpdateSome.Append(" WHERE 1 = 1 ");
            sqlUpdateSome.Append(" AND ElementID = @ElementID ");

            try
            {
                Database  db        = GetDatabaseInstance();
                DbCommand dbCommand = db.GetSqlStringCommand(sqlUpdateSome.ToString());

                foreach (DictionaryEntry de in propertyValues)
                {
                    ORProperty property = EntityMapping[de.Key.ToString()];
                    db.AddInParameter(dbCommand, "@" + property.ColumnName, property.DatabaseType, de.Value);
                }

                int result = db.ExecuteNonQuery(dbCommand, transaction);

                if (result == 0)
                {
                    throw new EntityNotFoundException();
                }
            }
            catch (Exception ex)
            {
                ExceptionPolicy.HandleException(ex, ExceptionPolicy.DataAccessDefaultPolicy);
            }
        }