
C#代碼生成器
快樂編程,開心工作!大家好我是一個C#程序員Mark。有的人說編程的過程是痛苦的,有的人說編程很痛苦的。為了生活~你們說的都對!我呢?是為了興趣所以樂在其中:) 。
最近呢很多剛開始學習C#編程的小夥伴找我給我提出了這麼一個問題,他說現在學了封裝、繼承、多態之後學校老師讓他們自己組隊做個小項目,但是呢數據庫中的表有十幾張表,如果按照面向對象+三層架構的思想每張表都要去寫一個實體類,而這個實體類呢和數據庫的字段和類型又有着一定的關聯(規律)。對於他這種比較懶的人來說,他總感覺吧是不是應該有什麼方法可以簡化大家的開發工作。所以呢他決定去網上找找,結果找到了一個叫XX代碼生成器的中文版工具,發現還真的能生成平時寫的代碼:),好吧接下來就由來這樣的一個訴求。
針對這個問題,Mark今天就來教大家做一個實用的小工具,原理就是根據數據庫提供的信息去按一定的規律生成我們需要的代碼。
小工具的名字就叫:C#代碼生成器
首先大家要知道,數據庫裏面的所有用戶創建的數據庫或表都是有系統表去記錄結構信息的。
1、了解數據結構
在sqlserver數據庫中查詢系統表SysDatabases
select * from SysDatabases
顯示結果:

字段dbid 值在1-6的是系統數據庫,其它為用戶自定義的業務庫。
2、在系統庫的SysObjects表中存放了我的用戶表結構信息,使用XType=’U’可以查詢出用戶添加的結構信息。
SELECT * FROM Schooldb..SysObjects Where XType=’U’ ORDER BY Name

在通過系統表動態獲取用戶庫和表信息之後我們如何來針對錶名來獲取對應列的信息呢?
如圖:

SQL腳本:select * from
information_schema.columns where table_name = ‘Students’
schema是架構:可以存放表、視圖、存儲過程等,主要是用於權限控制安全控制的,我們可以通過架構
information_schema.columns獲取列信息,系統視圖等數據。
數據庫結構總結完成之後呢,我們來上C#實現的關鍵代碼:

將數據庫類型轉換為C#類型。

將生成的代碼拼接成字符串,然後寫入到本地物理磁盤。

生成後的效果圖:
生成後的實體文件
實體類內容
好啦,至此功能已經完成,當然這段代碼只是生成了實體類,實際上普通的業務邏輯層和數據訪問層當然也能生成,那麼剩下的就留給大家去開開腦洞啦!!!
如果有小夥伴在編寫代碼過程當中碰到問題歡迎大家添加關注私信我來諮詢,或找我獲取錄製的視頻和代碼。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/221997.html
微信掃一掃
支付寶掃一掃