Microsoft は T4 テンプレートを提供していますが、使用するのが非常に難しいと思います。スクリプトを使用してテンプレートを直接記述する方法に勝るものはありません。 古いプロジェクトの周辺ツールを作りたいので、データベースに接続する必要があります。 結局のところ、EntityFrameworkCore は私がデビュー以来ずっと使用してきた ORM なので、私はそれを使用することに慣れています。 EF6 の時代には、VS は dbfirst を提供していましたが、それは SQL Server 専用だったようです。 今回のデータベースは MySQL なので、VS では完全にサポートされていない部分が多くあります。 しかし、支援が十分でない場合は、十分な食料と衣服を自分で確保することができます。 ジェネレーターとして ejs テンプレート エンジンを使用します。 npm インストール ejs 次に、クエリを使用してテーブル構造を取得します。 b.query('desc posts').then(res => { }) 次にテンプレートを記述します。ejs のテンプレート構文は、aspx 時代のテンプレート構文と非常によく似ており、どちらも山括弧 + パーセント記号 <%%> です。aspx 開発の経験がある人なら、このテンプレート エンジンに今でも非常に馴染みがあると思います。 システムの使用; System.Collections.Generic を使用します。 System.Linq を使用します。 System.Threading.Tasks を使用します。 名前空間 あなたの名前空間 { パブリッククラス <%= テーブル -%> { <% rows.forEach(function(row){ -%> <% if(row.Type.indexOf('bigint')!=-1){ -%> パブリック long <%= row.Field %> { 取得; 設定; } <% } -%> <% if(row.Type.indexOf('datetime')!=-1){ -%> パブリック DateTime <%= row.Field %> { 取得; 設定; } <% } -%> <% if(row.Type.indexOf('varchar')!=-1){ -%> パブリック文字列 <%= row.Field %> { 取得; 設定; } <% } -%> <% if(row.Type.indexOf('mediumtext')!=-1){ -%> パブリック文字列 <%= row.Field %> { 取得; 設定; } <% } -%> <% if(row.Type.indexOf('bit')!=-1){ -%> パブリックブール <%= row.Field %> { 取得; 設定; } <% } -%> <% if(row.Type.indexOf('longtext')!=-1){ -%> パブリック文字列 <%= row.Field %> { 取得; 設定; } <% } -%> <% }); -%> } } 上記のテンプレートでは、さまざまな MySQL データ型に対して対応する C# 型マッピングが作成されます。 次に、ejs を使用してテキストをレンダリングし、最後にフォルダーに保存します。 var tableName = 'table name'; //テンプレート内の対応するクラス名と生成された cs ファイルの名前 ejs.renderFile('./template/posts.ejs', { rows: res.rows, 'table': tableName}, (err, str) => { もし(エラー){ コンソールエラー(err); } それ以外 { temp = path.join(__dirname, 'temp') とします。 var 存在する = fs.existsSync(temp) 存在する場合{ fs.mkdirSync() } fs.writeFile(path.join(temp, tableName+'.cs'), str, (err) => { もし(エラー){ コンソールエラー(err); } それ以外 { console.log('テンプレートが正常に生成されました'); } }) } }) node を使用して実行すると、cs ファイルが生成されます。 テーブルはそれほど多くないので、1 つずつ生成します。データベース全体の生成を拡張したい場合は、さらに数行のコードを記述してライブラリ全体を生成できます。 上記は、C# でデータテーブルのエンティティクラス生成ツールを Node.js を使用して記述する方法の詳細です。Node.js の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Nginx レベルで基本的なユーザー認証を構成する手順を完了します。
>>: Windows での MySQL 8.0.11 インストール チュートリアル
質問前回のクロスドメイン リソース共有に関する記事では、ドメイン間で Cookie を送信する場合、...
目次1. psutilパッケージをインストールする次に、オペレーティングシステム内のすべてのサービス...
この記事ではMySQL 8.0.15のインストールと設定方法を参考までに記録します。具体的な内容は以...
序文NFS (Network File System) は、ネットワーク ファイル システムを意味し...
序文現在、フロントエンドは主に webpack の devServer の構成を通じてクロスドメイン...
コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...
CSSを導入する3つの方法1. インラインスタイル利点: 書きやすく、重みがある 欠点: 構造とスタ...
目次序文実装のアイデア実装コード成果を達成する序文これは、テーブルを動的に追加する例です。[追加] ...
mysql 5.7.19 winx64解凍版のインストールチュートリアルを収録しました。具体的な内容...
float の使用例左サスペンション: float:left;右サスペンション: float:rig...
トリガーの紹介トリガーは、テーブルに関連付けられた特別なストアド プロシージャであり、テーブル内のデ...
目次1. これは2. この点を修正する1. call() メソッド2. apply() メソッド要約...
手順は以下のとおりです1. dockerグループを作成する: sudo groupadd docke...
テーブルの style="table-layout:fixed;" を設定し、次...
序文起源は質問 1 です: umask が 022 に設定されている場合、作成するファイルのデフォル...