SeasarプロジェクトSeasar.NETプロジェクトS2Container.NETデータベース接続 > アプリケーション構成ファイルを使用した設定方法

目次


 アプリケーション構成ファイルを使用した設定方法では、ADO.NET 2.0の機能であるSystem.Data.Common.DbProviderFactoryクラス を内部で使用します。次のコンポーネントをdiconファイルに登録する必要があります。

 データソースの設定にはSeasar.Extension.Tx.Impl.TxDataSourceクラスを使います。 アプリケーション構成ファイルに定義したプロバイダ名を設定します。

プロパティ説明
ProviderInvariantName アプリケーション構成ファイルに定義する接続文字列名を指定します。必須です。 provider

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

Ado.dicon

<components namespace="Ado">
  <!-- トランザクション用のDataSource -->
  <component name="DataSource" class="Seasar.Extension.Tx.Impl.TxDataSource">
    <property name="ProviderInvariantName">"provider"</property>
  </component>

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

 アプリケーション構成ファイルには、プロバイダ名(必須)とデータプロバイダのアセンブリ(任意)を設定する必要があります。

 プロバイダ名の設定では、アプリケーション構成ファイルの <connectionStrings> 構成セクションデータソースに指定する接続文字列名、プロバイダ名、接続文字列を指定します。 詳細は、MSDN ADO.NET 2.0 基本クラスおよびファクトリによる汎用的なコーディングを参照してください。

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

App.config

<configuration>
  <configSections>
    <section name="seasar"
        type="Seasar.Framework.Xml.S2SectionHandler, Seasar" />
  </configSections>

  <connectionStrings>
    <add name="provider" 
        connectionString=
        "Server=(local);database=s2dotnetdemo;Integrated Security=SSPI"
        providerName="System.Data.SqlClient"/>
  </connectionStrings>

  <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>