Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

SQL Anywhere 12.0.1でのNHibernate 3.2.0 GAの使用

原文:Using NHibernate 3.2.0 GA with SQL Anywhere 12.0.1

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2011/12/01 14:00

(原文: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テーブルが含まれています。


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

著者プロフィール

  • Glenn Paulley(Glenn Paulley)

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

バックナンバー

連載:Glenn Paulley氏 データベース関連ブログ 翻訳記事

もっと読む

All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5