public static BuildBPColumn Create(BPColumn col)
 {
     BuildBPColumn bc = null;
     if (col.DataType == DataTypeEnum.CommonType)
     {
         bc = new BuildBPCommon(col);
     }
     else if (col.DataType == DataTypeEnum.RefreceType)
     {
         bc = new BuildBPRefrence(col);
     }
     else if (col.DataType == DataTypeEnum.CompositionType)
     {
         bc = new BuildBPComposition(col);
     }
     return bc;
 }
        public string BuildCode()
        {
            string buildCode = BPCodeTemplate.ProxyClassBeginTemplate.Replace(Attributes.Class, _entity.Code);
            buildCode = buildCode.Replace(Attributes.NameSpace, _namespace);
            buildCode = buildCode.Replace(Attributes.Guid, _entity.Guid);
            //生成属性信息
            foreach (BPColumn col in this._entity.ColumnList)
            {
                IBuild b = null;
                if (col.DataType == DataTypeEnum.CommonType)
                {
                    b = new BuildBPCommon(col);
                }
                else if (col.DataType == DataTypeEnum.RefreceType)
                {
                    b = new BuildBPRefrence(col);
                }
                else if (col.DataType == DataTypeEnum.CompositionType)
                {
                    b = new BuildBPComposition(col);
                }
                buildCode += b.BuildCode();
            }
            //生成构造函数
            buildCode += BPCodeTemplate.ProxyConstructorTemplate.Replace(Attributes.Class, _entity.Code).Replace(Attributes.NameSpace, _bpNamespace).Replace(Attributes.Guid, _entity.Guid);

            //生成do方法
            if (_entity.IsList)
            {
                buildCode += BPCodeTemplate.ProxyDoListBeginTemplate.Replace(Attributes.Return, _entity.ReturnProxyName);
            }
            else
            {
                buildCode += BPCodeTemplate.ProxyDoCommonBeginTemplate.Replace(Attributes.Return, _entity.ReturnProxyName);
            }
            //生成属性信息
            foreach (BPColumn col in this._entity.ColumnList)
            {
                string attr = BPCodeTemplate.ProxyInitParamListTemplate.Replace(Attributes.Code, col.Code);
                buildCode += attr;
            }

            if (_entity.IsList)
            {
                buildCode += BPCodeTemplate.ProxyDoListTemplate.Replace(Attributes.Return, _entity.ReturnProxyName);
                buildCode += BPCodeTemplate.ProxyDoListEndTemplate.Replace(Attributes.Return, _entity.ReturnProxyName);
            }
            else
            {
                buildCode += BPCodeTemplate.ProxyDoCommonTemplate.Replace(Attributes.Return, _entity.ReturnProxyName);
                buildCode += BPCodeTemplate.ProxyDoCommonEndTemplate.Replace(Attributes.Return, _entity.ReturnProxyName);
            }

            //生成SetValue覆盖方法
            if (_entity.ColumnList.Count > 0)
            {
                buildCode += BPCodeTemplate.BPSetValueBeginTemplate;
                foreach (BPColumn col in this._entity.ColumnList)
                {
                    if (col.DataType == DataTypeEnum.CompositionType)
                    {
                        buildCode += BPCodeTemplate.BPSetListValueTemplate.Replace(Attributes.Code, col.Code).Replace(Attributes.TypeString, col.TypeString);
                    }
                    else
                    {
                        buildCode += BPCodeTemplate.BPSetCommonValueTemplate.Replace(Attributes.Code, col.Code).Replace(Attributes.IsNull, col.IsNull ? "?" : "").Replace(Attributes.TypeString, col.TypeString);
                    }
                }
                buildCode += BPCodeTemplate.BPSetValueEndTemplate;
            }
            buildCode += BPCodeTemplate.ProxyClassEndTemplate;

            return buildCode;
        }