sql >> Databáze >  >> RDS >> Oracle

Nasazení a konfigurace ODP.NET pro práci bez instalace s Entity Framework

Tato odpověď shrnuje (doufejme) všechny požadované kroky, z nichž mnohé jsou zdokumentovány na různých místech online a mohou někomu ušetřit hodiny hledání na Googlu.

A. Jak nasadit a nakonfigurovat Oracle.DataAccess.Client.

A.1. Stáhněte si ODAC112030Xcopy_64bit.zip nebo ODAC112030Xcopy_32bit.zip.

A.1.1. Extrahujte obsah následujících složek v souboru zip do složky bin/setup vaší aplikace/hostitele:

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. Přidejte následující sekci na začátek souboru app.config/web.config vaší aplikace/hostitele (pokud již máte prvek configSections, přidejte do něj sekci:

<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. Přidejte následující části na konec souboru app.config/web.config vaší aplikace/hostitele:

A.4. Ze složky ODAC112030Xcopy Spusťte:

configure.bat odp.net4 somename

Doporučuji použít oraclehome112030_32 nebo oraclehome112030_64 jako „somename“ výše.

<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. Jak nasadit a nakonfigurovat Oracle.ManagedDataAccess.Client.

B.1. Stáhněte si ODP.NET_Managed_1120350_Beta.zip

B.1.1. Extrahujte následující soubory do složky bin/setup vaší aplikace/hostitele.

B.1.1.1. Oracle.ManagedDataAccess.dll

B.1.1.2. x64\Oracle.ManagedDataAccessDTC.dll nebo x86\Oracle.ManagedDataAccessDTC.dll

B.2. Přidejte následující sekci na začátek souboru app.config/web.config vaší aplikace/hostitele (pokud již máte prvek configSections, přidejte do něj sekci:

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

B.3. Přidejte následující části na konec souboru app.config/web.config vaší aplikace/hostitele:

<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. Pro stavbu:

C.1. Přidejte tuto sekci do app.config sestavy EDMX:

(To jsem s Oracle nezkoušel.Spravováno DataAccess.Client zatím)

<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. Přidejte soubor s názvem Oracle.xsd do stejného sestavení s obsahem:

<?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. Přidejte výše uvedené XSD do výše uvedeného seznamu schémat app.config.

C.4. Pokud se během sestavení zobrazují chyby pro logická mapování, přestože je sestavení úspěšné, přidejte mapování app.config do devenv.exe.config sady Visual Studio.

C.5. Pokud chcete použít Oracle.ManagedDataAccess.Client, buď upravte atribut poskytovatele dat v EDMX ručně před sestavením (toto jsem nezkoušel), nebo jej upravte před vytvořením kontextu za běhu a načtěte MSSL z upravené kopie místo z zdroj (zdá se, že to funguje a také používám podobný trik k výběru, který MSSL načíst pro různé poskytovatele DB).



D. Pro podporu návrhářů:

D.1. Stáhněte si win64_11gR2_client.zip nebo win32_11gR2_client.zip a nainstalujte.

D.1.1. Vyberte "Administrator" jako typ instalace.

D.2. stáhněte si ODT a nainstalujte.



Zkoušel jsem to (A a B) na prázdném počítači (VM) s Windows 7 x64.

Zdá se, že tento postup nefunguje s x86 verzí Oracle.DataAccess.Client na Windows x64.

Zdá se, že postup funguje s x64 verzí Oracle.DataAccess.Client na Windows x64 as oběma verzemi Oracle.ManagedDataAccess.Client.



  1. Limity kurzoru dotazu Salesforce API

  2. T-sql - určuje, zda je hodnota celé číslo

  3. Oracle Insert Vyberte s objednávkou podle

  4. jak získat sloupec podobný rowNum v sqlite IPHONE