web-dev-qa-db-ja.com

Entity FrameworkをインストールせずにODP.NETをデプロイおよび構成する

Entity FrameworkをインストールせずにODP.NETを展開および構成するにはどうすればよいですか?

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

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

C. Oracle SSDLを使用したEDMXを使用したビルドを機能させるには、何をする必要がありますか?

D.デザイナーサポートのために何をインストールする必要がありますか?

33
Danny Varod

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

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。アプリケーション/ホストの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。アプリケーション/ホストの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。上記のapp.configのスキーマのリストに上記のXSDを追加します。

C.4。ビルドが成功しても、ビルド中にブールマッピングのエラーが発生する場合は、app.configマッピングをVisual Studioの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をダウンロード でインストールします。




Windows 7 x64の空のマシン(VM)でこれ(AおよびB)を試しました。

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

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

67
Danny Varod

更新:

Oracle.DataAccess.ClientからOracle.ManagedDataAccess.Clientv12.1.0(12c)への簡単な移行方法:

編集: マネージODAC v12cリリース1のダウンロードリンク


ダウンロードする場合 winx64_12c_client.Zip または winnt_12c_client32.Zip VM上のインストールにはこのコンポーネントは含まれません)、「client」フォルダーの下に\odp.net\managedフォルダーがあります。

このフォルダー内には、common\Oracle.ManagedDataAccess.dllx86\Oracle.ManagedDataAccessDTC.dll、およびx64\Oracle.ManagedDataAccessDTC.dllがあります。

Oracle.ManagedDataAccess.dllをbinディレクトリにコピーし、x86/x64 binディレクトリの下にOracle.ManagedDataAccessDTC.dllの正しいプラットフォームをコピーするか、クライアントごとにその特定のDLL =ビンをAnyCPUのままにして、GACに入れます。

新しいDLLのアセンブリバージョンは4.121.1.0であり、PublicKeyTokenは同じようですそれを確認しますが、私はそれを変更せずに機能しました)。

前と同様に、このセクションをapp.configconfiguration/configSections(app.configファイルの先頭)に追加します。

<configuration>
   <configSections>

セクション:

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

そして閉じる:

</configSections>

System.data/DbProviderFactoriesの下(上記の後):

<system.data>
  <DbProviderFactories>

追加:

    <remove invariant="Oracle.DataAccess.Client" />
    <remove invariant="Oracle.ManagedDataAccess.Client" />

Machine.configに競合がないことを確認するには

それから加えて:

  <add name="ODP.NET, Managed Driver" invariant="Oracle.DataAccess.Client"
       description="Oracle Data Provider for .NET, Managed Driver"
       type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />

そして閉じる:

  </DbProviderFactories>
</system.data>

Notice不変式としてOracle.DataAccess.Clientの代わりに公式Oracle.ManagedDataAccess.Client。これは、すべてのEDMXを変更してアセンブリを再コンパイルし、古いアンマネージドクライアントではなく新しいマネージドクライアントを使用するようにしたくないためです。

次に、app.configに次のセクション(上記の後)を追加します

 <Oracle.manageddataaccess.client>
    <version number="*">
      <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>

これは私の最初のテストに合格しましたが、まだ完全にはテストされていません。

13
Danny Varod

32ビットOracle Data Access Components(ODAC)を以下のリンクからOracle Developer Tools for Visual Studioでインストールします

http://www.Oracle.com/technetwork/topics/dotnet/utilsoft-086879.html

0
Ajay Shankar