目次


 S2Container.NET独自の設定方法では、次のコンポーネントをdiconファイルに登録する必要があります。

 データプロバイダの設定にはSeasar.Extension.ADO.DataProviderクラスを使います。 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 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>   
 
  <!-- トランザクション用のDataSource -->
  <component name="DataSource" class="Seasar.Extension.Tx.Impl.TxDataSource">
    <property name="DataProvider">SqlClient</property>
    <property name="ConnectionString">
        "Server=(local);database=s2dotnetdemo;Integrated Security=SSPI"
    </property>
  </component>

  <!-- ローカルトランザクション用のインターセプターで使用します -->
  <component name="TransactionContext"
      class="Seasar.Extension.Tx.Impl.TransactionContext">
    <property name="IsolationLevel">
        System.Data.IsolationLevel.ReadCommitted
    </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>