Fluent NHibernate/データベース接続設定
< Fluent NHibernate
ナビゲーションに移動
検索に移動
2012年7月8日 (日) 06:10時点におけるimported>Administratorによる版
Fluent NHibernateのデータベース接続設定には、FluentNHibernate.Cfg名前空間、およびFluentNHibernate.Cfg.Db名前空間にあるクラス群を用いる。
Fluent NHibernateの主要機能のひとつであるエンティティおよびマッピングからのスキーマ自動生成(テーブルなどの自動生成)に関する設定もここで行う。
ドライバー[編集 | ソースを編集]
Fluent NHibernateには各種データベースの接続用ドライバーも含まれているので、大半のデータベースは接続設定だけすれば動く。
接続設定にはIPersistenceConfigurerインターフェイスを実装したクラスを用いる。 デフォルトではFluentNHibernate.Cfg.Db名前空間に以下のクラスが用意されている。
クラス | RDBMS |
---|---|
DB2Configuration | DB2 |
FirebirdConfiguration | Firebird |
IfxDRDAConfiguration | |
IfxOdbcConfiguration | ODBC |
IfxSQLIConfiguration | |
IngresConfiguration | Ingres |
JetDriverConfiguration | Jetデータベースエンジン(昔のAccessなど,Excelでも使える) |
MsSqlCeConfiguration | SQL Server CE |
MsSqlConfiguration | SQL Server |
MySQLConfiguration | MySQL |
OracleClientConfiguration | Oracle?他との違いは知らない。 |
OracleConfiguration | Oracle?他との違いは知らない。 |
OracleDataClientConfiguration | Oracle?他との違いは知らない。 |
PostgreSQLConfiguration | PostgreSQL |
SQLAnywhereConfiguration | |
SQLiteConfiguration | SQLite |
MySQL[編集 | ソースを編集]
Fluent NHibernateによるMySQLの接続設定の例を示す。
なお、この例ではホスト名やユーザー名、パスワードなどのMySQL接続設定はアプリケーション構成ファイルのConnectionStringsに記載されたものを使う。
using FluentNHibernate;
using FluentNHibernate.Cfg;
using FluentNHibernate.Cfg.Db;
using NHibernate;
using NHibernate.Tool.hbm2ddl;
public class SampleApp
{
public void Main(string[] args)
{
// MySQLの場合
var dbConfig = MySQLConfiguration
.Standard
.ConnectionString(cs => cs.FromConnectionStringWithKey("db"))
;
// 多くのサンプルでは↑と↓をメソッドチェーンで合体させて記述してあることが多い。
// そのような書き方は個人的にはあまり好きではない。
var fnConfig = Fluently.Configure()
.Database(dbConfig)
;
var factory = fnConfig.BuildSessionFactory();
}
}
あまりお勧めできる方法ではないが、アプリケーション構成ファイルではなく、MySQLの接続設定を直接ソースコードに埋め込む方法もある。 独自の設定ファイルを用いる場合にはこの方法を使うのもありかもしれない。
var dbConfig = MySQLConfiguration
.Standard
.ConnectionString(cs => cs
.Server("127.0.0.1")
.Username("user_name")
.Password("pasword")
.Database("database_name")
)
)
SQLite[編集 | ソースを編集]
Fluent NHibernateによるSQLiteの接続設定の例を示す。 Fluent NHibernateの公式サイトにあるサンプルはほぼSQLiteを使用しているので、公式サイトを見て回った方が早いかもしれない。
var dbConfig = SQLiteConfiguration
.Standard
.UsingFile("firstProject.db") // SQLiteファイルのパスを指定する。
関連項目[編集 | ソースを編集]
参考文献[編集 | ソースを編集]