ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

开始CSRebot

2022-02-04 08:31:09  阅读:140  来源: 互联网

标签:set string get 开始 CSRebot 实体类 public


  写代码很久了了,时不时想把这些年学到的,用到的,或自己感悟到的,汇总一下,形成一个东西,或资料,或工具。但每当开始时就一片空白,总是觉得这些大家都会,这些只是自己片面的观点,这些拿不出手……

  转念又想,再不写就更老了,再说社区的力量是伟大的,在写的过程中,可以集大家之思想,来完善,优化。

所以,在这里,如果大家对CSRebot有什么想法,都可以留言,建议也好,指正也好,观点也好,我会认真思考,认真对待,把CSRebot变成一个贴心的代码的小助手。


  什么是CSRebot?

  答:我想的一个名字,意思就是在我们写csharp时能辅助我们的小工具。


  市面上有很多各种各样的工具,肯定会有重复,也可能不如别人做的好,还是那句话,再不写就更老了,更重要的是,在写的路上本身就是一件很幸福的事,没有最好,但求更好。

 

 

  理想是伟大的,现实是骨感的,从哪里开始?

  就从.net tool开始吧,这是一个助手切入点;

  开发是一个复杂的过程,CSRebot能从什么方面帮助呢?

  就从手边开始吧,先把表转成实体类。

 


 

  想了一下,把数据库结构转成实体需要两个步骤和一前提:

  两个步骤:

  1、查询出数据结构

  2、转换实体

  一个前提:

  具备数据类型和语法类型的映射关系

 

  下面是我的想(代)法(码):

  数据库的结构信息用如下实体类承载

 public class DataBase
    {
        public string DataBaseName { get; set; }
        public List<Table> Tables{ get; set; } = new List<Table>();
    }
    
    public class Table
    {
        public string TableName { get; set; }
        public string TableDescribe { get; set; }
        public List<Field> Fields { get; set; } = new List<Field>();
    }

    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 Dictionary<string, 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,那数据转实体的关命令用什么好?

  我初步想的是用gen,generate头三个字母,简单,如果你有好的建议请留言。

  2、二是实现数据库结构转实体

  收集思路:这里要实现上面的两个接口:ITraverser,Builder。

  我的初步想法是,生成的实体类时,项目不同,要求不一,比如实体类上要求带特定的attribute,如果这里能用个模板的,就更加灵活了,工具只用来填空实体名称,属性名称,类型就好了,这里大家有什么建议,可以留言给我。

  期待您的建议!

 

  想要更快更方便的了解相关知识,可以关注微信公众号   

 

 

标签:set,string,get,开始,CSRebot,实体类,public
来源: https://www.cnblogs.com/axzxs2001/p/15862444.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有