Déploiement et configuration ODP.NET travailler sans installation avec Entity Framework

comment déployer et configurer ODP.NET travailler sans installation avec Entity Framework?

A. Comment déployer et configurer Oracle.DataAccess.Client?

B. Comment déployer et configurer Oracle.ManagedDataAccess.Client?

C. Que devez-vous faire pour que les constructions avec EDMXs avec Oracle SSDLs fonctionnent?

D. Qu'est-ce que vous devez installer pour le soutien du concepteur?

33
demandé sur Danny Varod 2012-12-05 14:25:27

3 réponses

cette réponse résume (avec un peu de chance) toutes les étapes requises, dont beaucoup ont été documentées à divers endroits en ligne et pourraient permettre à quelqu'un d'économiser des heures de recherche sur Google.

A. Comment déployer et configurer Oracle.DataAccess.Client.

A. 1. Télécharger ODAC112030Xcopy_64bit.zip ou ODAC112030Xcopy_32bit.zip.

A. 1.1. Extraire le contenu des dossiers suivants dans le fichier zip dans votre application hôte/bin/installation dossier:

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. Ajoutez la section suivante au début de votre application/application hôte.config / web.config (si vous avez déjà un configSections élément, ajouter la section:

<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. Ajouter les sections suivantes à la fin de votre application/hôte App.config / web.config:

A. 4. À partir du dossier Odac112030xcopy's Run:

configure.bat odp.net4 somename

je recommande d'utiliser oraclehome112030_32 ou oraclehome112030_64 comme" nom " ci-dessus.

<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. Comment déployer et configurer Oracle.ManagedDataAccess.Client.

B. 1. Download ODP.NET_Managed_1120350_Beta.zip

B. 1.1. Extraire les fichiers suivants dans le dossier bin/setup de votre application/hôte.

B. 1.1.1. Oracle.ManagedDataAccess.dll

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

B. 2. Ajoutez la section suivante au début de votre application/application hôte.config / web.config (si vous avez déjà un configSections élément, ajouter la section:

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

B. 3. Ajouter les sections suivantes à la fin de votre application/hôte 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. Pour la construction:

C. 1. Ajoutez cette section à l'application d'assemblage D'EDMX.config:

(Je n'ai pas essayé avec Oracle. géré 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. Ajouter un fichier nommé Oracle.xsd pour le même montage avec le contenu:

<?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. Ajoutez le XSD ci-dessus à l'application ci-dessus.config de la liste de Les schémas.

C. 4. Si vous obtenez des erreurs pour les mappages booléens pendant la construction même si la construction est réussie, ajoutez l'application.config mappages de Visual Studio devenv.EXE.config.

C. 5. Si vous voulez utiliser Oracle.ManagedDataAccess.Client, éditer l'attribut data provider dans L'EDMX manuellement avant la compilation (Je n'ai pas essayé cela) ou l'éditer avant la création du contexte à l'exécution et charger MSSL à partir de la copie éditée au lieu de la ressource (cela semble fonctionner et je aussi utilisez une astuce similaire pour choisir quel mssl charger pour les différents fournisseurs de DB).






D. pour le soutien des designers:

D. 1. Télécharger win64_11gR2_client.zip ou win32_11gR2_client.zip et à installer.

D. 1.1. Sélectionnez "Administrateur" comme type d'installation.

D. 2. download ODT et installer.






j'ai essayé ceci (A et B) sur une machine vierge (VM) avec Windows 7 x64.

cette procédure ne semble pas fonctionner avec la version x86 D'Oracle.DataAccess.Client sur Windows x64.

la procédure semble fonctionner avec la version x64 D'Oracle.DataAccess.Client sur Windows x64 et avec les deux versions D'Oracle.ManagedDataAccess.Client.

66
répondu Danny Varod 2012-12-05 14:57:54

mise à Jour:

migration depuis Oracle.DataAccess.Client à Oracle.ManagedDataAccess.Client v12.1.0 (12c), le moyen le plus facile:

Modifier: lien de Téléchargement pour les ODAC v12c Release 1.



Si vous téléchargez winx64_12c_client.zip ou winnt_12c_client32.zip, les extraire et installer (installation complète (admin) ou installation personnalisée avec ODP.NET composant de l'installation du client ne comprend pas cette composante) sur une machine virtuelle, vous trouverez le dossier \odp.net\managed sous le dossier "client".

Dans ce dossier, vous trouverez common\Oracle.ManagedDataAccess.dll,x86\Oracle.ManagedDataAccessDTC.dll et x64\Oracle.ManagedDataAccessDTC.dll.

Copier Oracle.ManagedDataAccess.dll dans votre répertoire bin et copiez la plate-forme correcte de Oracle.ManagedDataAccessDTC.dll sous votre répertoire x86 / x64 bin ou, par client, installez la bonne plate-forme de cette DLL spécifique dans le GAC, en gardant votre bin comme AnyCPU.

L'assemblée version de la nouvelle DLL est 4.121.1.0, Le Publiceytoken semble être le même (ne l'a pas vérifié, mais il a fonctionné sans que je le change).

comme avant, Ajoutez cette section à votre app.config configuration/configSections (au début de l'application.fichier de configuration):

<configuration>
   <configSections>

l'Article:

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

et fermer avec:

</configSections>

Sous système.data / DbProviderFactories (après la ci-dessus):

<system.data>
  <DbProviderFactories>

ajouter:

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

Pour vous assurer que vous n'avez pas de conflits dans votre machine.config

puis ajouter:

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

et fermer avec:

  </DbProviderFactories>
</system.data>

Avis j'ai utilisé Oracle.DataAccess.Client invariant au lieu de le officiel Oracle.ManagedDataAccess.Client. C'est parce que je ne veux pas changer tous mes EDMXs et recompiler leurs assemblages pour qu'ils utilisent le nouveau client managé au lieu de l'ancien non managé.

puis Ajouter la section suivante (après ce qui précède) à votre application.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>

cela a passé mon test initial, n'ont pas testé complètement encore si.

13
répondu Danny Varod 2013-11-12 12:25:15

Installer 32-bits de Données Oracle Access Components (ODAC) avec Oracle Developer Tools pour Visual Studio lien ci-dessous :

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

0
répondu Ajay Shankar 2016-04-07 15:23:05