Wdrażanie i konfiguracja ODP.NET do pracy bez instalacji z Entity Framework

Jak wdrożyć i skonfigurować ODP.NET do pracy bez instalacji z Entity Framework?

A. Jak wdrożyć i skonfigurować Oracle.Dostęp do danych.Klient?

B. Jak wdrożyć i skonfigurować Oracle./ Align = "left" / Klient?

C. Co trzeba zrobić, aby buildy z EDMXs z SSDL Oracle działały?

D. Co trzeba zainstalować dla wsparcia projektanta?

Author: Danny Varod, 2012-12-05

3 answers

Ta odpowiedź podsumowuje (miejmy nadzieję) wszystkie wymagane kroki, z których wiele udokumentowano w różnych miejscach online i może zaoszczędzić komuś godziny googlowania.

A. Jak wdrożyć i skonfigurować Oracle.Dostęp do danych.Klient.

A. 1. Pobierz ODAC112030Xcopy_64bit.zip lub ODAC112030Xcopy_32bit.zip .

A. 1.1. Rozpakuj zawartość następujących folderów w pliku zip do folderu bin/setup aplikacji/hosta:

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. Dodaj następującą sekcję na początku aplikacji/hosta.config / web.config (jeśli masz już element configSections, Dodaj do niego sekcję:

<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. Dodaj następujące sekcje na końcu aplikacji / hosta.config / web.config:

A. 4. Z folderu ODAC112030Xcopy Run:
configure.bat odp.net4 somename

Zalecam użycie oraclehome112030_32 lub oraclehome112030_64 jako" nazwy " powyżej.

<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 wdrożyć i skonfigurować Oracle./ Align = "left" / Klient.

B. 1. Pobierz ODP.NET_Managed_1120350_Beta.zip

B. 1.1. Rozpakuj następujące pliki do folderu bin/Setup aplikacji/hosta.

B. 1.1. 1. Wyrocznia./ Align = "left" / dll

B. 1. 1. 2. x64\Oracle.Manageddata accessdtc.dll lub x86\Oracle.Manageddata accessdtc.dll

B. 2. Dodaj następującą sekcję na początku aplikacji/hosta.config / web.config (jeśli masz już element configSections, Dodaj do niego sekcję:

<configSections>
  <section name="oracle.manageddataaccess.client"
    type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.112.3.50, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</configSections>
B. 3. Dodaj następujące sekcje na końcu aplikacji / hosta.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. Dla budynku:

C. 1. Dodaj tę sekcję do aplikacji montażu EDMX.config:

(nie próbowałem tego z wyrocznią.Zarządzane DataAccess.Client yet)

<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. Dodaj plik o nazwie Oracle.xsd do tego samego zestawu o treści:

<?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. Dodaj powyższy XSD do powyższej aplikacji.lista schematów config ' a.

C. 4. Jeśli podczas kompilacji pojawiają się błędy mapowania logicznego, mimo że kompilacja się powiodła, Dodaj aplikację.Config mappings to Visual Studio ' s devenv.exe.config.

C. 5. Jeśli chcesz korzystać z Oracle./ Align = "left" / Klient, albo Edytuj Dostawcę danych atrybut w EDMX ręcznie przed zbudowaniem (nie próbowałem tego) lub edytować go przed utworzeniem kontekstu w czasie wykonywania i załadować MSSL z edytowanej kopii zamiast z zasobu (to wydaje się działać i używam również podobnej sztuczki, aby wybrać, który MSSL załadować dla różnych dostawców DB).




D. dla wsparcia projektanta:

D. 1. Pobierz win64_11gR2_client.zip lub win32_11gR2_client.zip i zainstaluj.

D. 1.1. Wybierz "Administrator" jako typ instalacji.

D. 2. Pobierz ODT i zainstaluj.




Próbowałem tego (A i B) na pustej maszynie (VM) z Windows 7 x64.

Ta procedura nie wydaje się działać z wersją x86 Oracle.Dostęp do danych.Klient na Windows x64.

Procedura wydaje się działać z wersją x64 Oracle.Dostęp do danych.Klient na Windows x64 oraz z obiema wersjami Oracle./ Align = "left" / Klient.

 66
Author: Danny Varod,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-05 14:57:54

Update:

Migracja z Oracle.Dostęp do danych.Klient Oracle./ Align = "left" / Client v12.1.0 (12c) prosty sposób:

Edytuj: link do pobrania dla managed ODAC V12c Release 1.


Jeśli pobierasz winx64_12c_client.zip lub winnt_12c_client32.zip , rozpakuj je i zainstaluj (pełna (admin) instalacja lub niestandardowa instalacja z ODP.NET komponentu, instalacja klienta nie zawiera tego komponentu) na VM, znajdziesz folder \odp.net\managed w folderze "klient".

W tym folderze znajdziesz common\Oracle.ManagedDataAccess.dll, x86\Oracle.ManagedDataAccessDTC.dll i x64\Oracle.ManagedDataAccessDTC.dll.

Skopiuj Oracle.ManagedDataAccess.dll do katalogu bin i skopiuj poprawną platformę Oracle.ManagedDataAccessDTC.dll pod katalogiem bin x86/x64 lub, na klienta, zainstaluj poprawną platformę tej konkretnej biblioteki DLL do GAC, zachowując swój bin jako AnyCPU.

Wersja assembly nowej biblioteki DLL jest 4.121.1.0, PublicKeyToken wydaje się być taki sam (nie sprawdzał to, ale działało bez mojej zmiany).

Jak poprzednio, dodaj tę sekcję do swojej aplikacji .config configSections / configSections (na początku aplikacji.plik konfiguracyjny):

<configuration>
   <configSections>

Sekcja:

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

I zamknąć:

</configSections>

W systemie.data / DbProviderFactories (po powyższym):

<system.data>
  <DbProviderFactories>

Dodaj:

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

Aby upewnić się, że nie masz żadnych konfliktów w swojej maszynie.config

Następnie dodaj:

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

I zamknąć z:

  </DbProviderFactories>
</system.data>

Notice użyłem Oracle.DataAccess.Client jako niezmiennik zamiast oficjalnego Oracle.ManagedDataAccess.Client. Dzieje się tak dlatego, że nie chcę zmieniać wszystkich moich EDMX i rekompilować ich zestawów, aby zmusić ich do korzystania z nowego zarządzanego klienta zamiast starego niezarządzanego.

Następnie dodaj następującą sekcję (po powyższym) do swojej aplikacji.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>

To przeszło moje wstępne testy, ale jeszcze nie przetestowałem dokładnie.

 13
Author: Danny Varod,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-12 12:25:15

Zainstaluj 32-bitowe Komponenty Oracle Data Access (ODAC) za pomocą narzędzi programistycznych Oracle dla Visual Studio z poniższego linku :

Http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html

 0
Author: Ajay Shankar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-07 15:23:05