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); }
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); }