SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Glenn Paulley氏 データベース関連ブログ 翻訳記事(PR)

SQL Anywhere 12.0.1でのNHibernate 3.2.0 GAの使用

原文:Using NHibernate 3.2.0 GA with SQL Anywhere 12.0.1

  • このエントリーをはてなブックマークに追加

(原文:Using NHibernate 3.2.0 GA with SQL Anywhere 12.0.1、2011/08/10投稿)

  • このエントリーをはてなブックマークに追加

 去る7月30日に、NHibernateオブジェクトリレーショナルマッピングツールキットの3.2.0 GAリリースが公開されました。

 Julian Maughanの尽力のおかげで、このNHibernateの基本ディストリビューションにはSQL Anywhere用の方言が2つ含まれています。それらはSybaseSQLAnywhere10Dialect.csとSybaseSQLAnywhere11Dialect.csという名前が付けられていて、それぞれSQL Anywhereのバージョン10と11において、ほとんど変更することなく使用することができます。しかし、SQL Anywhereのソフトウェア構成は12.0.1リリースになっていくつかの点で変更されており、NHibernate 3.2.0ディストリビューションにはSQL Anywhere 12用のNHibernate方言が含まれていません。そこで、SQL Anywhere 12.0.1に対するNHibernateのサポートについて再び検討したいと思います。

 私は2010年1月に、SQL Anywhere 12.0.0用のNHibernate方言に関する記事を投稿していますが、これはNHibernate 2.1.0リリースについてのものでした。NHibernateのバージョン3はいくつかの変更をもたらしており、たとえば、自分でNHibernateをビルドするにはMicrosoft Visual Studio 2010が必要になります。実際、最善のソフトウェア構成でNHibernateとSQL Anywhere 12.0.1とを利用するには、自分でビルドする必要があります。

 重要な点を要約すると、以下のようになります。

  • 私が2010年1月に投稿したSQL Anywhere 12用の方言は、ほとんど変更がありませんが、小さな変更が2点だけあります。第一の変更点は、そのクラス名がSQLAnywhere12DialectからSybaseSQLAnywhere12Dialectに変更されたことです。これは、JulianがNHibernate 3.1.0ディストリビューションに加えたSQL Anywhere 11および12用の方言のクラス名に対する変更と一致させるためです。第二の変更点は、この方言がメタデータクラスであるSybaseSQLAnywhere11DataBaseMetaDataを参照することです。この点については次の項を参照してください。
  • /NHibernate/src/NHibernate/Dialect/Schemaディレクトリに含まれる新規のメタデータクラスであるSybaseSQLAnywhere11DataBaseMetaDataは、GetReservedWords() APIを適切にサポートしています。これはPaul Gibsonが以前に報告した問題への対応です。
  • SQL Anywhere 12.0.1においてSQL Anywhere ADO.NETプロバイダ用のADO.NETライブラリの名前に加えられた変更をサポートするには、/Nhibernate/src/NHibernate/Driver内にSybaseSQLAnywhere12Driverという名前の新しいドライバが必要です。

 新しいソースファイルの.zipアーカイブは、ここに保存されています。このアーカイブには、NHibernate 3.2.0 DLLを再コンパイルした後で妥当性テストに使用できるHelloNHibernateのインスタンスも含まれています。ただし、このアーカイブに含まれているVisual Studioソリューションを使用するためには、SQL Anywhereの.NETプロバイダDLLであるiAnywhere.Data.SQLAnywhere.v4.0.dllをHelloNHibernate\bin\Debugディレクトリにコピーすることが必要になるので注意してください。また、このアーカイブに含まれているhelloseq.dbデータベースをSQL Anywhere 12.0.1サーバ上で実行することも必要になります。このデータベースには、プライマリキーとしてシーケンスを用いているEmployeeテーブルが含まれています。

次のページ
SybaseSQLAnywhere12Dialect.cs

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Glenn Paulley氏 データベース関連ブログ 翻訳記事連載記事一覧

もっと読む

この記事の著者

Glenn Paulley(Glenn Paulley)

カナダ オンタリオ州 ウォータールー R&DセンターにてSQL Anywhere 開発における Director of Engineering としてクエリ・オプティマイザなどの開発をリードしている。・IvanAnywhere

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6159 2011/12/01 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング