問題描述
如何部署和配置 ODP.NET 以在不安裝實體框架的情況下工作?
How do you deploy and configure ODP.NET to work without installation with Entity Framework?
A.如何部署和配置 Oracle.DataAccess.Client?
A. How to deploy and configure Oracle.DataAccess.Client?
B.如何部署和配置 Oracle.ManagedDataAccess.Client?
B. How to deploy and configure Oracle.ManagedDataAccess.Client?
C.您需要做什么才能使用帶有 Oracle SSDL 的 EDMX 進行構建?
C. What do you need to do in order to make builds with EDMXs with Oracle SSDLs work?
D.您需要安裝什么才能獲得設計師支持?
D. What do you need to install for designer support?
推薦答案
這個答案總結了(希望如此)所需的所有步驟,其中許多步驟記錄在網上的不同地方,可能會節省一些人的谷歌搜索時間.
This answer summarizes (hopefully) all the steps required, many of which documented in various places online and might save someone hours of Googling.
A.如何部署和配置 Oracle.DataAccess.Client.
A. How to deploy and configure Oracle.DataAccess.Client.
A.1.下載 ODAC112030Xcopy_64bit.zip 或 ODAC112030Xcopy_32bit.zip.
A.1. Download ODAC112030Xcopy_64bit.zip or ODAC112030Xcopy_32bit.zip.
A.1.1.將 zip 文件中以下文件夾的內容解壓縮到您的應用程序/主機的 bin/setup 文件夾中:
A.1.1. Extract the content of the following folders within the zip file into your application/host's bin/setup folder:
A.1.1.1.Instantclient_11_2
A.1.1.1. instantclient_11_2
A.1.1.2.odp.net4\bin\
A.1.1.2. odp.net4\bin\
A.1.1.3.odp.net4\odp.net\bin\
A.1.1.3. odp.net4\odp.net\bin\
A.1.1.4.odp.net4\odp.net\PublisherPolicy\4\
A.1.1.4. odp.net4\odp.net\PublisherPolicy\4\
A.2.將以下部分添加到您的應用程序/主機的 app.config/web.config 的開頭(如果您已經有 configSections 元素,請將該部分添加到其中:
A.2. Add the following section to the beginning of your application's/host's app.config/web.config (if you already have a configSections element, add the section to it:
<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.3. Add the following sections to the end of your application's/host's app.config/web.config:
A.4.從 ODAC112030Xcopy 的文件夾運行:
A.4. From the ODAC112030Xcopy's folder Run:
configure.bat odp.net4 somename
我建議使用 oraclehome112030_32 或 oraclehome112030_64 作為上面的somename".
I recommend using oraclehome112030_32 or oraclehome112030_64 as the "somename" above.
<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. How to deploy and configure Oracle.ManagedDataAccess.Client.
B.1.下載 ODP.NET_Managed_1120350_Beta.zip
B.1.1.將以下文件解壓到您的應用程序/主機的 bin/setup 文件夾中.
B.1.1. Extract the following files into your application/host's bin/setup folder.
B.1.1.1.Oracle.ManagedDataAccess.dll
B.1.1.1. Oracle.ManagedDataAccess.dll
B.1.1.2.x64\Oracle.ManagedDataAccessDTC.dll 或 x86\Oracle.ManagedDataAccessDTC.dll
B.1.1.2. x64\Oracle.ManagedDataAccessDTC.dll or x86\Oracle.ManagedDataAccessDTC.dll
B.2.將以下部分添加到您的應用程序/主機的 app.config/web.config 的開頭(如果您已經有 configSections 元素,請將該部分添加到其中:
B.2. Add the following section to the beginning of your application's/host's app.config/web.config (if you already have a configSections element, add the section to it:
<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 的末尾:
B.3. Add the following sections to the end of your application's/host's 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:
C.1. Add this section to your EDMX's assembly's app.config:
(還沒有在 Oracle 上嘗試過這個.ManagedDataAccess.Client 還沒有)
(Haven't tried this with Oracle.ManagedDataAccess.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.將名為 Oracle.xsd 的文件添加到具有以下內容的相同程序集中:
C.2. Add a file named Oracle.xsd to the same assembly with the content:
<?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 的 Schemas 列表中.
C.3. Add the above XSD to the above app.config's list of Schemas.
C.4.如果您在構建過程中遇到布爾映射錯誤,即使構建成功,請將 app.config 映射添加到 Visual Studio 的 devenv.exe.config.
C.4. If you are getting errors for boolean mappings during build even though build is succeeding, add the app.config mappings to Visual Studio's devenv.exe.config.
C.5.如果您想使用 Oracle.ManagedDataAccess.Client,請在構建之前手動編輯 EDMX 中的數據提供程序屬性(我還沒有嘗試過)或在運行時創建上下文之前對其進行編輯并從編輯的副本加載 MSSL,而不是從資源(這似乎有效,我也使用類似的技巧來選擇為不同的數據庫提供程序加載哪個 MSSL).
C.5. If you want to use Oracle.ManagedDataAccess.Client, either edit data provider attribute in the EDMX manually prior to build (I have not tried this) or edit it prior to creation of Context at run time and load MSSL from edited copy instead of from resource (this seems to work and I also use a similar trick to choose which MSSL to load for different DB providers).
D.如需設計師支持:
D.1.下載 win64_11gR2_client.zip 或 win32_11gR2_client.zip 并安裝.
D.1. Download win64_11gR2_client.zip or win32_11gR2_client.zip and install.
D.1.1.選擇管理員"作為安裝類型.
D.1.1. Select "Administrator" as type of installation.
D.2.下載 ODT 并安裝.
我在裝有 Windows 7 x64 的空白機器 (VM) 上嘗試了這個(A 和 B).
I tried this (A and B) on a blank machine (VM) with Windows 7 x64.
此過程似乎不適用于 Windows x64 上的 x86 版本的 Oracle.DataAccess.Client.
This procedure does not seem to work with x86 version of Oracle.DataAccess.Client on Windows x64.
該過程似乎適用于 Windows x64 上的 x64 版本的 Oracle.DataAccess.Client 和兩個版本的 Oracle.ManagedDataAccess.Client.
The procedure does seem to work with the x64 version of Oracle.DataAccess.Client on Windows x64 and with both versions of Oracle.ManagedDataAccess.Client.
這篇關于部署和配置 ODP.NET 以在不安裝實體框架的情況下工作的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!