This project MySQL Workbench Models File to Microsoft.NEt 4.5 .NET Entity Framework 6.0 C# source code Generator
MySQL Workbench models ファイルを参照したモデルファーストの Entity Frameworkで使用する C# ソースコードを生成します。
MicroSoft VisualStudio 2015 で開発しました。
NuGet サイトからパッケージ
MySql.Data.6.9.9以降をインストールして下さい。
.NET Entity Framework 6.0以降をインストールして下さい。
zipファイルを解凍後、VisualStudio 2015でソリューションファイル(”M2E4Win.sin”)を読込みビルドして下さい。
-
File name
- BookDB.mwb
mwb形式のサンプルファイルです。 蔵書テーブルと著者テーブルを収めました。
Entiy対応ソースファイルが正しく出力されるか確認してください。 - M2E4Mono.exe
Mono環境下で実行ファイルをクリックすると起動します。
$ mono ./M2E4Mono/bin/Debug/M2E4Mono.exe
- BookDB.mwb
-
入力項目
- MySQL WorkBench Models File
ファイル名を入力または選択してください。 - Server
例:’192.168.0.254','localhost:3306' IPアドレス等 を入力してください。 - User ID
MySqlのユーザー名を入力してください。 - Password
MySqlのパスワードを入力してください。 - Database
MySqlのデータベース名を入力してください。存在確認はいたしません。存在しない時はDatabaseを自動生成します。 + Namespace
C#で使用するNamespaceを必ず指定します。 - 接続TEST
接続テストを行い、結果を表示します。 - キャンセル
各項目を消去します。
- MySQL WorkBench Models File
-
出力ファイル(Output File)
- (mwbfilename).cs
mwbファイルと同じ名前でC#のソースファイル出力します。
プロジェクトにこの出力ファイルを追加してください。 - AppconfigReadme.txt
プロジェクトの設定ファイル"App.config" の 設定例を示します。
connectionStrings節の中をコピー&ペーストして使用して下さい。
- (mwbfilename).cs
-
同梱ファイル(使用例 File)
- book.mwb
MySQL Workbench Models 使用例です。 簡単なautherテーブルとbookテーブルからビューを1つ含むモデルのEntityコードの生成を確認出来ます。
- book.mwb
MySQLへ初回の接続が確立された後、Databaseが存在しない時はDatabaseを自動生成します。
MySQL Workbench Models file -> "book.mwb" の場合。
using System;
using System.Data.Entity;
using System.Linq;
namespace bookcontext {
class Program {
static void Main(string[] args) {
// Database Auto Migrate
Database.SetInitializer(new bookMigrateDatabaseToLatestVersion());
// Database None Migrate
Database.SetInitializer(new NullDatabaseInitializer<bookDB>());
bookDB db = new bookDB();
}
}
}
Database.SetInitializer(new bookMigrateDatabaseToLatestVersion());
と
Database.SetInitializer(new NullDatabaseInitializer<bookDB>());
はどちらか一方を採用して下さい。
上記の使用例でDatabase.SetInitializer(new bookMigrateDatabaseToLatestVersion());
を使用した場合
ソースファイルを分割することにより、純粋なコードファーストのコードを記述してDatabase 初期化するなくテーブルの追加や変更など更新することができます。