protected void SetupUpdatePropertyTypes(string[] propertyNames)
        {
            ArrayList types = new ArrayList();

            for (int i = 0; i < propertyNames.Length; ++i)
            {
                IPropertyType pt = BeanMetaData.GetPropertyType(propertyNames[i]);
                if (pt.IsPrimaryKey)
                {
                    continue;
                }
                types.Add(pt);
            }
            propertyTypes = (IPropertyType[])types.ToArray(typeof(IPropertyType));
        }
        // ===============================================================================
        //                                                                        Setupper
        //                                                                        ========
        protected void SetupInsertPropertyTypes(string[] propertyNames)
        {
            ArrayList types = new ArrayList();

            for (int i = 0; i < propertyNames.Length; ++i)
            {
                IPropertyType pt = BeanMetaData.GetPropertyType(propertyNames[i]);
                if (pt.IsPrimaryKey && !BeanMetaData.IdentifierGenerator.IsSelfGenerate)
                {
                    continue;
                }
                types.Add(pt);
            }
            propertyTypes = (IPropertyType[])types.ToArray(typeof(IPropertyType));
        }