어떻게 nodejs로 C#에 데이터 테이블의 실체 클래스 생성 도구를 씁니까

2916 단어 nodejsc#실체류
마이크로소프트가 T4 템플릿을 제공했지만 나는 매우 사용하기 어렵다고 느낀다.직접 스크립트로 템플릿을 쓰는 것보다 낫다.
오래된 프로젝트에 주변 도구를 만들려면 데이터베이스에 연결해야 하기 때문이다.
나는 데뷔 때부터 줄곧 사용해 왔던 ORM을 Entity Framework Core로 하는 것이 습관적이다.
EF6 시대, vs는dbfirst를 제공했지만 sql 서버를 겨냥한 것 같습니다.
이번 데이터베이스는 MySQL이기 때문에 vs 많은 것들이 지원되지 않습니다.
하지만 지지가 부족하면 스스로 손을 써서 풍족하게 먹어야지.
우리는 js라는 템플릿 엔진을 사용하여 생성기를 만든다.

npm install ejs
그런 다음 질의로 테이블 구조를 내보냅니다.

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

})
그리고 템플릿을 작성합니다. js의 템플릿 문법은 aspx시대 때의 템플릿 문법과 매우 비슷합니다. 모두 괄호 + 백분호 같은 스타일입니다. <%%>. aspx 개발 경험이 있는 베테랑들이 이 템플릿 엔진에 익숙하다고 믿습니다.

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 데이터 유형에 대한 C# 유형 매핑을 수행했습니다.
그리고 js를 사용하여 텍스트를 렌더링하고 폴더에 저장하면 ok합니다

var tableName = ' '; // 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를 사용하여 실행하면 cs 파일을 생성할 수 있습니다.
나는 시계가 많지 않기 때문에, 나는 단독으로 생성하면 된다.전체 데이터베이스 생성을 확장하려면 몇 줄의 코드를 더 쓰면 전체 라이브러리가 생성될 수 있습니다!
이상은 nodejs로 C#에 데이터 테이블의 실체 클래스 생성 도구를 작성하는 방법에 대한 상세한 내용입니다. 더 많은 nodejs에 대한 자료는 저희 다른 관련 글에 주목하십시오!

좋은 웹페이지 즐겨찾기