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 インストール チュートリアル
metaはhtml言語のhead領域にある補助タグです。おそらく、これらのコードは不要だと思うかもし...
この記事ではvueを使用し、マウスクリックイベントといくつかの小さなページの最適化を追加します。 基...
目次1. カスタムルーティング2. タブナビゲーション3. データの返却要約する1. カスタムルーテ...
1. 公式ウェブサイトから 64 ビットの zip ファイルをダウンロードします。 2. インスト...
目次概要setTimeout() の確認スリープ関数の書き方シンプルな選択ループで実行されますか?要...
RDF と OWL は、2 つの重要なセマンティック ウェブ テクノロジーです。 RDF と OWL...
使用状態useState は、関数コンポーネント内で呼び出すことで、コンポーネントに内部状態を追加し...
<br />セマンティクス化は一言で説明することはできないし、まだ公式かつ厳密な定義もあ...
以下に、一般的な MySQL コマンドをいくつか示します。 -- データベース サービスを開始します...
まずMySQLにログインする シェル> mysql --user=root mysqlパスワー...
MySQL を初めて学ぶときは、区切り文字の本当の目的を理解していないかもしれません。区切り文字は、...
私は通常、Tomcatや他のアプリケーションのリバースプロキシとしてnginxを使用しています。実際...
docker における実行と開始の違いDocker run はミラーイメージを指定します。そしてdo...
目次1. オプションとは何ですか? 2. 含まれる属性3. エントリー属性エルデータ方法コンポーネン...
テーブルを切り捨てる個々の行の削除をログに記録せずに、テーブル内のすべての行を削除します。文法 テー...