示例#1
0
        private string RenderEntityByTemplate(CodeClass entity)
        {
            string concreteNew = AddNewToConcrete(entity);

            //如果实体类文件中还包含了仓库的文件,则需要同时在自动代码中加入仓库的自动代码。
            bool renderRepository = HasRepository(entity);

            var res = ItemCodeTemplate.GetEntityFileCode(
                entity.Namespace.Name, concreteNew, entity.Name, renderRepository
                );

            return(res);
        }
示例#2
0
        private bool GenerateClassFile(Table table)
        {
            if (table.Name == "zzzDbMigrationVersion")
            {
                return(false);
            }

            var entityName = ToEntityName(table);
            var fileName   = entityName + ".cs";
            var item       = _directory.ProjectItems.FindByName(fileName);

            if (item != null)
            {
                return(false);
            }

            if (!CheckHasPK(table))
            {
                return(false);
            }

            _tablePropertiesConfig.Clear();

            var parameters = new ItemCodeTemplate.EntityFileCodeParamters()
            {
                domainNamespace      = this.DomainName,
                domainEntityName     = entityName,
                domainBaseEntityName = _domainBaseEntityName,
            };

            //生成属性、引用属性
            parameters.normalProperties = this.RenderNormalProperties(table);
            parameters.refProperties    = this.RenderRefProperties(table);
            parameters.tableConfig      = entityName == table.Name ?
                                          "Meta.MapTable().MapAllProperties();" :
                                          string.Format(@"Meta.MapTable(""{0}"").MapAllProperties();", table.Name);
            parameters.columnConfig = this.RenderColumnConfig(table);

            //使用模板格式化字符串。
            var code = ItemCodeTemplate.GetEntityFileCode(parameters);

            //写到文件,并加入到项目中。
            var file = Path.Combine(Path.GetDirectoryName(_directory.get_FileNames(1)), fileName);

            File.WriteAllText(file, code);
            _directory.ProjectItems.AddFromFile(file);
            return(true);
        }