欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何用nodejs給C#寫一個數(shù)據(jù)表的實(shí)體類生成工具

 更新時間:2021年05月11日 10:15:35   作者:青城同學(xué)  
這篇文章主要介紹了如何用nodejs給C#寫一個數(shù)據(jù)表的實(shí)體類生成工具,對nodejs感興趣的同學(xué),可以參考下

雖然微軟提供了T4模板,但是我感覺非常難用。哪兒比得上直接用腳本來寫模板來的爽。

因為要給一個老項目做周邊的工具,需要連接到數(shù)據(jù)庫。

我習(xí)慣性用EntityFrameworkCore來做,因為畢竟從出道開始就一直在用的一個ORM。

EF6時代,vs提供了dbfirst,但是只是針對sqlserver好像。

因為這次的數(shù)據(jù)庫是MySQL,所以vs很多東西都支持不夠了。

但是支持不夠就自己動手豐衣足食嘛。

我們使用ejs這個模板引擎來做生成器。

npm install ejs

然后用查詢出表結(jié)構(gòu):

b.query('desc posts').then(res => {

})

然后編寫模板,ejs的模板語法和aspx時代的時候的模板語法很相似,都是尖括號+百分號這樣的風(fēng)格<%%>,相信有aspx開發(fā)經(jīng)驗的老鐵們對這個模板引擎還是很習(xí)慣的

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace 你的命名空間
{
public class <%= table -%>
{
<% rows.forEach(function(row){ -%>
<% if(row.Type.indexOf('bigint')!=-1){ -%>
public long <%= row.Field %> { get; set; }
<% } -%>
<% if(row.Type.indexOf('datetime')!=-1){ -%>
public DateTime <%= row.Field %> { get; set; }
<% } -%>
<% if(row.Type.indexOf('varchar')!=-1){ -%>
public string <%= row.Field %> { get; set; }
<% } -%>
<% if(row.Type.indexOf('mediumtext')!=-1){ -%>
public string <%= row.Field %> { get; set; }
<% } -%>
<% if(row.Type.indexOf('bit')!=-1){ -%>
public bool <%= row.Field %> { get; set; }
<% } -%>
<% if(row.Type.indexOf('longtext')!=-1){ -%>
public string <%= row.Field %> { get; set; }
<% } -%>
<% }); -%>
}
}

以上的模板中,針對不同的MySQL數(shù)據(jù)類型做了對應(yīng)的C#類型映射。

然后使用ejs來渲染出一個文本,最后保存到文件夾中就ok了

var tableName = '表名字'; //對應(yīng)的模板中的class名字和生成的cs文件的名字
    ejs.renderFile('./template/posts.ejs', { rows: res.rows, 'table': tableName}, (err, str) => {
        if (err) {
            console.error(err);
        }
        else {
            let temp = path.join(__dirname, 'temp');
            var exist = fs.existsSync(temp)
            if (!exist) {
                fs.mkdirSync()
            }
            fs.writeFile(path.join(temp, tableName+'.cs'), str, (err) => {
                if (err) {
                    console.error(err);
                } else {
                    console.log('生成模板成功');
                }
            })

        }
    })

使用node執(zhí)行一下,就能生成出一個cs文件了。

因為我表不多,我就單個生成就行了。如果要擴(kuò)展出整個數(shù)據(jù)庫都生成,可以再寫幾行代碼就能整個庫都生成了!

以上就是如何用nodejs給C#寫一個數(shù)據(jù)表的實(shí)體類生成工具的詳細(xì)內(nèi)容,更多關(guān)于nodejs的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 了不起的node.js讀書筆記之node的學(xué)習(xí)總結(jié)

    了不起的node.js讀書筆記之node的學(xué)習(xí)總結(jié)

    這篇文章主要介紹了了不起的node.js讀書筆記之node的學(xué)習(xí)總結(jié),需要的朋友可以參考下
    2014-12-12
  • 輕松創(chuàng)建nodejs服務(wù)器(6):作出響應(yīng)

    輕松創(chuàng)建nodejs服務(wù)器(6):作出響應(yīng)

    這篇文章主要介紹了輕松創(chuàng)建nodejs服務(wù)器(6):作出響應(yīng),我們接著改造服務(wù)器,讓請求處理程序能夠返回一些有意義的信息,需要的朋友可以參考下
    2014-12-12
  • node和vue實(shí)現(xiàn)商城用戶地址模塊

    node和vue實(shí)現(xiàn)商城用戶地址模塊

    這篇文章主要為大家詳細(xì)介紹了node和vue實(shí)現(xiàn)商城用戶地址模塊,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Ajax獲取node服務(wù)器數(shù)據(jù)的完整步驟

    Ajax獲取node服務(wù)器數(shù)據(jù)的完整步驟

    這篇文章主要給大家介紹了關(guān)于Ajax獲取node服務(wù)器數(shù)據(jù)的完整步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • npm安裝windows-build-tools卡在Successfully?installed?Python2.7

    npm安裝windows-build-tools卡在Successfully?installed?Python2.7

    這篇文章主要介紹了npm安裝windows-build-tools卡在Successfully?installed?Python2.7的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • 簡單了解小程序+node梳理登陸流程

    簡單了解小程序+node梳理登陸流程

    這篇文章主要介紹了簡單了解小程序+node梳理登陸流程,以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,,需要的朋友可以參考下
    2019-06-06
  • sublime text配置node.js調(diào)試(圖文教程)

    sublime text配置node.js調(diào)試(圖文教程)

    下面小編就為大家分享一篇sublime text配置node.js調(diào)試(圖文教程),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • Nodejs下DNS緩存問題淺析

    Nodejs下DNS緩存問題淺析

    本文給大家一起探討nodejs下dns的緩存問題,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2016-11-11
  • Node實(shí)現(xiàn)前端本地開發(fā)接口代理服務(wù)

    Node實(shí)現(xiàn)前端本地開發(fā)接口代理服務(wù)

    本文主要介紹了Node實(shí)現(xiàn)前端本地開發(fā)接口代理服務(wù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • 簡單好用的nodejs 爬蟲框架分享

    簡單好用的nodejs 爬蟲框架分享

    使用nodejs開發(fā)爬蟲半年左右了,爬蟲可以很簡單,也可以很復(fù)雜。簡單的爬蟲定向爬取一個網(wǎng)站,可能有個幾萬或者幾十萬的頁面請求,今天給大家介紹這款非常好用的爬蟲框架crawl-pet
    2017-03-03

最新評論