【乾貨分享】C# 實體類生成工具

前言數據庫

  項目實戰中不管是業務編碼仍是通用編碼,總會概括出一些通用的工具類。放入項目中一勞永逸,讓兄弟姐妹們避免編寫重複代碼。因此利用了工做之餘的時間,將這些散落在多個項目中精緻優雅的工具類,概括起來造成工程,方便後續工做的使用和便捷開發。工具

根據實際需求,編寫了此工具。目前只支持SQLServer數據庫,不過我本身有時間也會完成其餘數據庫支持的,有興趣的讀者能夠繼續擴展支持其餘數據庫。編碼

功能spa

1能自動得到用戶數據庫中的全部數據表;
2能根據用戶所選的數據表,自動生成實體類
3能自動產生 C# 實體類的(*.cs)代碼文件;3d

實體工具code

1、界面截圖:cdn

2、SQL語句部分代碼
blog

----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',但有時候會有系統表混在其中(不知道什麼緣由),加上後面一句後就能刪除這些系統表了。

3、C#部分代碼開發

        /// <summary>
        /// 獲取全部數據庫
        /// </summary>
        /// <param name="connection"></param>
        /// <returns></returns>
        public static List<DbTable> GetAllDataBaseName(string connection)
        {
            List<DbTable> dic = new List<DbTable>();
            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;
        }
        /// <summary>
        /// 寫文件
        /// </summary>
        /// <param name="fileName">文件完整路徑</param>
        /// <param name="content">內容</param>
        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();
                }
            }
        }

工具下載get

實體類生成工具[下載]

總結

1.避免編寫重複代碼,編寫此工具生成實體類快速開發。

2.這類工具在網上已有很多,可是本身能夠概括起來造成工程,放入項目中,不只本身從中能夠學到新的知識也同時提高了本身的總結概括能力。

3.此工具還未完善,只支持SQLServer數據庫,不過我本身有時間也會完成其餘數據庫支持的,有興趣的讀者能夠繼續擴展支持其餘數據庫。

4.若是有不對的或不理解的地方,但願你們能夠多多指正,提出問題,才能站在更多用戶角度,編寫了出更便捷實用的工具。

相關文章
相關標籤/搜索