sql >> データベース >  >> RDS >> Oracle

EntityFrameworkをインストールせずに動作するようにODP.NETをデプロイおよび構成する

    この回答は、(うまくいけば)必要なすべての手順を要約したものであり、その多くはオンラインのさまざまな場所で文書化されており、グーグルの時間を節約できる可能性があります。

    A.Oracle.DataAccess.Clientをデプロイおよび構成する方法。

    A.1。 ODAC112030Xcopy_64bit.zipまたはODAC112030Xcopy_32bit.zipをダウンロードします。

    A.1.1。 zipファイル内の次のフォルダーのコンテンツをアプリケーション/ホストのbin/setupフォルダーに抽出します。

    A.1.1.1。 Instantclient_11_2

    A.1.1.2。 odp.net4 \ bin \

    A.1.1.3。 odp.net4 \ odp.net \ bin \

    A.1.1.4。 odp.net4 \ odp.net \ PublisherPolicy \ 4 \

    A.2。アプリケーションの/hostのapp.config/web.configの先頭に次のセクションを追加します(既にconfigSections要素がある場合は、それにセクションを追加します:

    <configSections>
      <section name="oracle.dataaccess.client"
        type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    </configSections>
    

    A.3。アプリケーション/ホストのapp.config/web.configの最後に次のセクションを追加します。

    A.4。 ODAC112030Xcopyのフォルダから実行:

    configure.bat odp.net4 somename
    

    上記の「somename」としてoraclehome112030_32またはoraclehome112030_64を使用することをお勧めします。

    <system.data>
      <DbProviderFactories>
        <!-- Remove in case this is already defined in machine.config -->
        <remove invariant="Oracle.DataAccess.Client" />
        <add name="Oracle Data Provider for .NET"
             invariant="Oracle.DataAccess.Client"
             description="Oracle Data Provider for .NET"
             type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
      </DbProviderFactories>
    </system.data>
    
    <oracle.dataaccess.client>
      <settings>
        <add name="bool" value="edmmapping number(1,0)" />
        <add name="byte" value="edmmapping number(3,0)" />
        <add name="int16" value="edmmapping number(5,0)" />
        <add name="int32" value="edmmapping number(10,0)" />
        <add name="int64" value="edmmapping number(19,0)" />
        <add name="int16" value="edmmapping number(38,0)" />
        <add name="int32" value="edmmapping number(38,0)" />
        <add name="int64" value="edmmapping number(38,0)" />
      </settings>
    </oracle.dataaccess.client>
    



    B.Oracle.ManagedDataAccess.Clientをデプロイおよび構成する方法。

    B.1。 ODP.NET_Managed_1120350_Beta.zipをダウンロード

    B.1.1。次のファイルをアプリケーション/ホストのbin/setupフォルダーに解凍します。

    B.1.1.1。 Oracle.ManagedDataAccess.dll

    B.1.1.2。 x64\Oracle.ManagedDataAccessDTC.dllまたはx86\Oracle.ManagedDataAccessDTC.dll

    B.2。アプリケーションの/hostのapp.config/web.configの先頭に次のセクションを追加します(既にconfigSections要素がある場合は、それにセクションを追加します:

    <configSections>
      <section name="oracle.manageddataaccess.client"
        type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.112.3.50, Culture=neutral, PublicKeyToken=89b483f429c47342" />
    </configSections>
    

    B.3。アプリケーション/ホストのapp.config/web.configの最後に次のセクションを追加します。

    <system.data>
      <DbProviderFactories>
        <!-- Remove in case this is already defined in machine.config -->
        <remove invariant="Oracle.ManagedDataAccess.Client" />
        <add name="ODP.NET, Managed Driver"
             invariant="Oracle.ManagedDataAccess.Client"
             description="Oracle Data Provider for .NET, Managed Driver"
             type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.112.3.50, Culture=neutral, PublicKeyToken=89b483f429c47342" />
      </DbProviderFactories>
    </system.data>
    
    <oracle.manageddataaccess.client>
      <version number="*">
        <settings>
          <!-- Set this path if you are using TNS aliases as connection strings (not recommended) -->
          <!-- Instead you can use "SERVER_NAME:PORT/SERVICE_NAME" as your data source -->
          <setting name="TNS_ADMIN" value="C:\"/>
        </settings>
        <edmMappings>
          <edmMapping dataType="number">
            <add name="bool" precision="1"/>
            <add name="byte" precision="2" />
            <add name="int16" precision="5" />
          </edmMapping>
        </edmMappings>
      </version>
    </oracle.manageddataaccess.client>
    



    C.構築用:

    C.1。このセクションをEDMXのアセンブリのapp.configに追加します:

    (Oracleでこれを試したことはありません。管理対象 DataAccess.Clientはまだ)

    <oracle.dataaccess.client>
      <settings>
        <add name="bool" value="edmmapping number(1,0)" />
        <add name="byte" value="edmmapping number(3,0)" />
        <add name="int16" value="edmmapping number(5,0)" />
        <add name="int32" value="edmmapping number(10,0)" />
        <add name="int64" value="edmmapping number(19,0)" />
        <add name="int16" value="edmmapping number(38,0)" />
        <add name="int32" value="edmmapping number(38,0)" />
        <add name="int64" value="edmmapping number(38,0)" />
      </settings>
    </oracle.dataaccess.client>
    

    C.2。 Oracle.xsdという名前のファイルを次の内容の同じアセンブリに追加します:

    <?xml version="1.0" encoding="utf-8"?>
    <xs:schema id="odpnetappconfigmappings" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    
      <xs:complexType name="addtype">
        <xs:attribute name="name" type="xs:string" />
        <xs:attribute name="value" type="xs:string" />
      </xs:complexType>
    
      <xs:complexType name="settingstype">
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element name="add" type="addtype" />
        </xs:sequence>
      </xs:complexType>
    
      <xs:complexType name="oracledataaccessclienttype">
        <xs:sequence minOccurs="0" maxOccurs="1">
          <xs:element name="settings" type="settingstype" />
        </xs:sequence>
      </xs:complexType>
    
      <xs:element name="oracle.dataaccess.client" type="oracledataaccessclienttype" />
    
    </xs:schema>
    

    C.3。上記のXSDを上記のapp.configのスキーマリストに追加します。

    C.4。ビルドが成功しているにもかかわらず、ビルド中にブールマッピングのエラーが発生する場合は、app.configマッピングをVisualStudioのdevenv.exe.configに追加します。

    C.5。 Oracle.ManagedDataAccess.Clientを使用する場合は、ビルド前にEDMXでデータプロバイダー属性を手動で編集するか(これは試していません)、実行時にコンテキストを作成する前に編集し、編集したコピーからMSSLをロードします。リソース(これは機能しているようで、同様のトリックを使用して、さまざまなDBプロバイダーにロードするMSSLを選択します)。



    D.デザイナーサポートの場合:

    D.1。 win64_11gR2_client.zipまたはwin32_11gR2_client.zipをダウンロードしてインストールします。

    D.1.1。インストールの種類として「管理者」を選択します。

    D.2。 ODTをダウンロードしてインストールします。



    これ(AとB)をWindows 7 x64のブランクマシン(VM)で試しました。

    この手順は、Windowsx64上のx86バージョンのOracle.DataAccess.Clientでは機能しないようです。

    この手順は、Windowsx64上のx64バージョンのOracle.DataAccess.Clientと両方のバージョンのOracle.ManagedDataAccess.Clientで機能するようです。



    1. 動的SQLステートメントでテーブル変数を使用する方法は?

    2. PostgreSQLデータベース内のすべてのトリガーを一覧表示する2つの方法

    3. PostgreSQL正規表現の単語境界?

    4. SQL Serverのvarchar列から奇妙な文字(帽子をかぶったA)を削除します