PetaPoco には、データベースから Poco を自動的に生成するための T4 Template が付属している。今回はそれを使ってみる。
https://github.com/toptensoftware/petapoco
上から PetaPoco をダウンロードすると、Models フォルダの下に Generated フォルダがあり、その中に以下の4ファイルがある。
・Database.cs
・Database.tt
・PetaPoco.Core.ttinclude
・PetaPoco.Generator.ttinclude
これらのファイルのうち下の3つをプロジェクトに追加して、Visual Studio から使用するのだが、今回は分かりやすいように新規プロジェクトでやってみる。
1. C# のクラスライブラリの新規プロジェクトを作成する。
2. アプリケーション設定ファイル App.config をプロジェクトに追加し、データベースへの接続文字列を追加する。たとえば接続文字列名 PPTest で追加すると、以下のようになる。
3. 参照設定の追加で System.Configuration を追加する。上記の接続文字列を読み込むのに必要となるようだ。
4. ダウンロードした PetaPoco のファイルのうち、以下をプロジェクトに追加する。
・PetaPoco.cs
・Database.tt
・PetaPoco.Core.ttinclude
・PetaPoco.Generator.ttinclude
5. 追加した Database.tt を開き、冒頭の ConnectionStringName に、App.config に追加した接続文字列名を指定する。ここでは上で指定した PPTest を設定する。
また、必要に応じて Settings とコメントのある部分を編集する。ここでは Namespace と ClassPrefix を指定してみた。
6. ここまで設定したら、Visual Studio のソリューションエクスプローラーの Database.tt の上で右クリックし、「カスタム ツールの実行」を選ぶ。そうすると、Database.cs が生成され、その中に Poco が生成されている。
以上だが、そのままやると以下のような警告が出てしまう。
警告が嫌な場合は、PetaPoco.Core.ttinclude の1行目にある以下の "C#v3.5" を "C#" と編集するといい。
以上。
https://github.com/toptensoftware/petapoco
上から PetaPoco をダウンロードすると、Models フォルダの下に Generated フォルダがあり、その中に以下の4ファイルがある。
・Database.cs
・Database.tt
・PetaPoco.Core.ttinclude
・PetaPoco.Generator.ttinclude
これらのファイルのうち下の3つをプロジェクトに追加して、Visual Studio から使用するのだが、今回は分かりやすいように新規プロジェクトでやってみる。
1. C# のクラスライブラリの新規プロジェクトを作成する。
2. アプリケーション設定ファイル App.config をプロジェクトに追加し、データベースへの接続文字列を追加する。たとえば接続文字列名 PPTest で追加すると、以下のようになる。
<?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="PPTest" providerName="System.Data.SqlClient" connectionString="Data Source=localhost\SQLEXP2012; Initial Catalog=PPDB; User ID=sa; Password=sa; " /> </connectionStrings> </configuration>
3. 参照設定の追加で System.Configuration を追加する。上記の接続文字列を読み込むのに必要となるようだ。
4. ダウンロードした PetaPoco のファイルのうち、以下をプロジェクトに追加する。
・PetaPoco.cs
・Database.tt
・PetaPoco.Core.ttinclude
・PetaPoco.Generator.ttinclude
5. 追加した Database.tt を開き、冒頭の ConnectionStringName に、App.config に追加した接続文字列名を指定する。ここでは上で指定した PPTest を設定する。
また、必要に応じて Settings とコメントのある部分を編集する。ここでは Namespace と ClassPrefix を指定してみた。
// Settings ConnectionStringName = "SHK"; // Uses last connection string in config if not specified Namespace = "PPTest.PPDatabase"; RepoName = ""; GenerateOperations = true; GeneratePocos = true; GenerateCommon = true; ClassPrefix = "PPRow_"; ClassSuffix = ""; TrackModifiedColumns = false;
6. ここまで設定したら、Visual Studio のソリューションエクスプローラーの Database.tt の上で右クリックし、「カスタム ツールの実行」を選ぶ。そうすると、Database.cs が生成され、その中に Poco が生成されている。
以上だが、そのままやると以下のような警告が出てしまう。
C# 2.0 と C# 3.5 のコンパイラはサポートされなくなりました。テンプレートは、指定された 'v3.5' ではなく、常にバージョン 4 のコンパイラでコンパイルされます。
警告が嫌な場合は、PetaPoco.Core.ttinclude の1行目にある以下の "C#v3.5" を "C#" と編集するといい。
<#@ template language="C#v3.5" hostspecific="True" #>
以上。