博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【干货分享】C# 实体类生成工具
阅读量:5090 次
发布时间:2019-06-13

本文共 2910 字,大约阅读时间需要 9 分钟。

原文:

前言

  项目实战中不论是业务编码还是通用编码,总会归纳出一些通用的工具类。放入项目中一劳永逸,让兄弟姐妹们避免编写重复代码。所以利用了工作之余的时间,将这些散落在多个项目中精致优雅的工具类,归纳起来形成工程,方便后续工作的使用和便捷开发。

根据实际需求,编写了此工具。目前只支持SQLServer数据库,不过我自己有时间也会完成其他数据库支持的,有兴趣的读者可以继续扩展支持其他数据库。

功能

1能自动获得用户数据库中的所有数据表;

2能根据用户所选的数据表,自动生成实体类
3能自动产生 C# 实体类的(*.cs)代码文件;

实体工具

一、界面截图:

二、SQL语句部分代码

----1. 获取所有的数据库名-----SELECT NAME FROM MASTER.DBO.SYSDATABASES ORDER BY NAME-----2. 获取所有的表名------SELECT NAME FROM SYSOBJECTS WHERE XTYPE='U' ORDER BY NAME--XTYPE='U':表示所有用户表;--XTYPE='S':表示所有系统表;SELECT NAME FROM SYSOBJECTS WHERE TYPE = 'U' AND SYSSTAT = '83'----注意:一般情况只需要TYPE = 'U',但有时候会有系统表混在其中(不知道什么原因),加上后面一句后就能删除这些系统表了。

三、C#部分代码

///         /// 获取所有数据库        ///         ///         /// 
public static List
GetAllDataBaseName(string connection) { List
dic = new List
(); string ConnString = "select name from Master.sys.SysDatabases order by name"; SqlConnection connect = new SqlConnection(connection); SqlCommand cmd = new SqlCommand(ConnString, connect); try { if (connect.State == ConnectionState.Closed) { connect.Open(); IDataReader dr = cmd.ExecuteReader(); dic.Clear(); while (dr.Read()) { dic.Add(new DbTable { value = dr["name"].ToString(), key = dr["name"].ToString() }); } dr.Close(); } } catch (Exception ex) { throw new AggregateException("获得数据库地址错误,你想上天吗?"); } finally { if (connect != null && connect.State == ConnectionState.Open) { connect.Dispose(); } } return dic; }
///         /// 写文件        ///         /// 文件完整路径        /// 内容        private static void WriteAndSave(string fileName, string content)        {            //实例化一个文件流--->与写入文件相关联            using (var fs = new FileStream(fileName, FileMode.Create, FileAccess.Write))            {                //实例化一个StreamWriter-->与fs相关联                using (var sw = new StreamWriter(fs))                {                    //开始写入                    sw.Write(content);                    //清空缓冲区                    sw.Flush();                    //关闭流                    sw.Close();                    fs.Close();                }            }        }

工具下载

总结

1.避免编写重复代码,编写此工具生成实体类快速开发。

2.这类工具在网上已有不少,但是自己可以归纳起来形成工程,放入项目中,不仅自己从中可以学到新的知识也同时提升了自己的总结归纳能力。

3.此工具还未完善,只支持SQLServer数据库,不过我自己有时间也会完成其他数据库支持的,有兴趣的读者可以继续扩展支持其他数据库。

4.如果有不对的或不理解的地方,希望大家可以多多指正,提出问题,才能站在更多用户角度,编写了出更便捷实用的工具。

posted on
2019-06-23 16:06 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lonelyxmas/p/11073139.html

你可能感兴趣的文章