private void Init()
        {
            foreach (PropertyInfo info in this.EntityType.GetProperties(this.BindingFlag))
            {
                object[] customAttributes = info.GetCustomAttributes(typeof(ColumnAttribute), true);
                if (customAttributes != null && customAttributes.Length > 0)
                {
                    ColumnAttribute colAttr    = customAttributes[0] as ColumnAttribute;
                    string          columnName = this.GetColumnName(colAttr.Name, info.Name);
                    DbParameter     parameter  = DbHelper.CreateParameter(columnName, colAttr.DataType, colAttr.Size);
                    this.allColumns.Add(columnName);
                    if (!colAttr.Identity)
                    {
                        this.insertColumns.Add(columnName);
                        this.insertParameters.Add(info.Name, parameter);
                    }
                    if (colAttr.PrimaryKey)
                    {
                        this.primaryKeyColumns.Add(columnName);
                        this.primaryKeyParameters.Add(info.Name, parameter);
                        this.updateParameters.Add(info.Name, parameter);
                    }
                    else
                    {
                        if (colAttr.AllowEdit)
                        {
                            this.updateColumns.Add(columnName);
                            this.updateParameters.Add(info.Name, parameter);
                        }
                    }
                }
            }

            PersistenceCache.SetListObjects(this.AllColumnsKey, this.allColumns);
            PersistenceCache.SetListObjects(this.InsertColumnsKey, this.insertColumns);
            PersistenceCache.SetListObjects(this.UpdateColumnsKey, this.updateColumns);
            PersistenceCache.SetListObjects(this.PrimaryKeyColumnsKey, this.primaryKeyColumns);
            PersistenceCache.SetDbParameters(this.InsertParametersKey, this.insertParameters);
            PersistenceCache.SetDbParameters(this.UpdateParametersKey, this.updateParameters);
            PersistenceCache.SetDbParameters(this.PrimaryKeyParametersKey, this.primaryKeyParameters);
        }