邢台网站优化服务平台,腾讯云主机网站建设教程,php网站开发进程状态,唯品会网站建设建议写代码很久了了#xff0c;时不时想把这些年学到的#xff0c;用到的#xff0c;或自己感悟到的#xff0c;汇总一下#xff0c;形成一个东西#xff0c;或资料#xff0c;或工具。但每当开始时就一片空白#xff0c;总是觉得这些大家都会#xff0c;这些只是自己片面… 写代码很久了了时不时想把这些年学到的用到的或自己感悟到的汇总一下形成一个东西或资料或工具。但每当开始时就一片空白总是觉得这些大家都会这些只是自己片面的观点这些拿不出手……转念又想再不写就更老了再说社区的力量是伟大的在写的过程中可以集大家之思想来完善优化。所以在这里如果大家对CSRebot有什么想法都可以留言建议也好指正也好观点也好我会认真思考认真对待把CSRebot变成一个贴心的代码的小助手。什么是CSRebot答我想的一个名字意思就是在我们写csharp时能辅助我们的小工具。市面上有很多各种各样的工具肯定会有重复也可能不如别人做的好还是那句话再不写就更老了更重要的是在写的路上本身就是一件很幸福的事没有最好但求更好。理想是伟大的现实是骨感的从哪里开始就从.net tool开始吧这是一个助手切入点开发是一个复杂的过程CSRebot能从什么方面帮助呢就从手边开始吧先把表转成实体类。想了一下把数据库结构转成实体需要两个步骤和一前提两个步骤1、查询出数据结构2、转换实体一个前提具备数据类型和语法类型的映射关系下面是我的想(代)法(码)数据库的结构信息用如下实体类承载 public class DataBase{public string DataBaseName { get; set; }public ListTable Tables{ get; set; } new ListTable();}public class Table{public string TableName { get; set; }public string TableDescribe { get; set; }public ListField Fields { get; set; } new ListField();}public class Field{public string FieldName{ get; set; }public string FieldDescribe { get; set; }public string DBType { get; set; }}
两个步骤用两个接口完成/// summary
/// 完成从数据库生成数据库结构实体
/// /summary
public interface ITraverser
{DataBase Traverse();
}
/// summary
/// 完成对应编程语言实体类生成
/// /summary
public interface IBuilder
{void Build(DataBase database, CommandOptions options);
}
一个条件初步整理_typeMap new Dictionarystring, string
{{char,char },{varchar,string },{tinytext,string },{text,string },{blob,string },{mediumtext,string },{mediumblob,string },{longblob,string },{longtext,string },{tinyint,short },{smallint,short },{mediumint,short },{int,int },{bigint,long },{float,float },{double,double },{decimal,decimal },{date,DateTime },{datetime,DateTime },{timestamp,string },{time,DateTime }, {boolean,bool },
};
有了思路接下来是两个工作1、是根据工具的命令和参数选项来执行命令收集思路工具的关键字是csrebot那数据转实体的关命令用什么好我初步想的是用gengenerate头三个字母简单如果你有好的建议请留言。2、二是实现数据库结构转实体收集思路这里要实现上面的两个接口ITraverserBuilder。我的初步想法是生成的实体类时项目不同要求不一比如实体类上要求带特定的attribute如果这里能用个模板的就更加灵活了工具只用来填空实体名称属性名称类型就好了这里大家有什么建议可以留言给我。期待您的建议