Seasar DI Container with AOP
S2Container.NET TOPページへ

S2Container.NET(バージョン1.1以降)では、データベースとの接続機能に対応しています。 S2Tx.NETと連動してトランザクション中にコネクションを取得し閉じるということを何度か行っても、トランザクションは維持されます。 トランザクションは、Aspectで自動的に処理することができます。

セットアップ

DataProvider, TxDataSourceの設定を行います。

Seasar.Extension.ADO.DataProvider

プロパティ 説明
ConnectionType

System.Data.IDbConnectionインターフェースを実装する.NET Frameworkデータプロバイダのクラス名を設定します。
必須です。

"System.Data.SqlClient.SqlConnection"
CommandType System.Data.IDbCommandインターフェースを実装する.NET Frameworkデータプロバイダのクラス名を設定します。
必須です。
"System.Data.SqlClient.SqlCommand"
ParameterType System.Data.IDbParameterインターフェースを実装する.NET Frameworkデータプロバイダのクラス名を設定します。
必須です。
"System.Data.SqlClient.SqlParameter"
DataAdapterType System.Data.IDbDataAdapterインターフェースを実装する.NET Frameworkデータプロバイダのクラス名を設定します。
必須です。
"System.Data.SqlClient.SqlDataAdapter"

Seasar.Extension.Tx.Impl.TxDataSource

プロパティ 説明
DataProvider DataProviderのインスタンス名を指定します。S2Containerで指定する場合は、DataProviderのコンポーネント名を設定します。
必須です。
SqlClient
ConnectionString データベースに接続するための接続文字列を指定します。System.Data.IDbConnection.ConnectionStringプロパティに設定する文字列です。
必須です。
※ 「\」(エンマーク)は「\\」とエスケープする必要があります。 例えばSQL Server 2005にインスタンス名を指定して接続する場合は「コンピュータ名\\インスタンス名」となります。
"Server=MYPC\\SQLEXPRESS;database=s2dotnetdemo;Integrated Security=SSPI"

コンポーネントの設定は以下のようになります。環境に合わせて書き換えてください。

Ado.dicon
<components namespace="Ado">
    <!-- .NET Framework Data Provider for SQL Server を使用する場合に必要です。 -->
    <component name="SqlClient" class="Seasar.Extension.ADO.DataProvider">
        <property name="ConnectionType">"System.Data.SqlClient.SqlConnection"</property>
        <property name="CommandType">"System.Data.SqlClient.SqlCommand"</property>
        <property name="ParameterType">"System.Data.SqlClient.SqlParameter"</property>
        <property name="DataAdapterType">"System.Data.SqlClient.SqlDataAdapter"</property>
    </component>    
    <component name="DataSource" class="Seasar.Extension.Tx.Impl.TxDataSource">
        <property name="DataProvider">SqlClient</property>
        <property name="ConnectionString">"Server=127.0.0.1;database=s2dotnetdemo;Integrated Security=SSPI"</property>
    </component>
</components>

アプリケーション構成ファイル

.NET Frameworkデータプロバイダ for SQL Server以外の.NET Frameworkデータプロバイダを使用する場合、アプリケーション構成ファイルに.NET Frameworkデータプロバイダのアセンブリを登録する必要があります。 アプリケーション構成ファイルの <seasar> 構成セクションにアセンブリを指定します。

App.config
<configuration>
  <configSections>
    <section name="seasar" type="Seasar.Framework.Xml.S2SectionHandler, Seasar" />
  </configSections>
  <seasar>
    <assemblys>
      <!-- .NET Framework Data Provider for Oracle を使用する場合に必要です。 -->
      <assembly>System.Data.OracleClient, version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</assembly>
      <!-- Firebird .NET Data Provider を使用する場合に必要です。 -->
      <!--
      <assembly>FirebirdSql.Data.Firebird, Version=1.7.0.1, Culture=neutral, PublicKeyToken=fa843d180294369d</assembly>
      -->
    </assemblys>
  </seasar>
</configuration>