Câu trả lời này tóm tắt (hy vọng) tất cả các bước cần thiết, nhiều bước trong số đó được ghi lại ở nhiều nơi khác nhau trên mạng và có thể giúp ai đó tiết kiệm hàng giờ sử dụng Google.
A. Cách triển khai và cấu hình Oracle.DataAccess.Client.
A.1. Tải xuống ODAC112030Xcopy_64bit.zip hoặc ODAC112030Xcopy_32bit.zip.
A.1.1. Giải nén nội dung của các thư mục sau trong tệp zip vào thư mục bin / thiết lập ứng dụng / máy chủ lưu trữ của bạn:
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. Thêm phần sau vào đầu app.config / web.config của ứng dụng / host của bạn (nếu bạn đã có phần tử configSection, hãy thêm phần vào đó:
<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. Thêm các phần sau vào cuối app.config / web.config của ứng dụng / host của bạn:
A.4. Từ thư mục ODAC112030Xcopy Chạy:
configure.bat odp.net4 somename
Tôi khuyên bạn nên sử dụng oraclehome112030_32 hoặc oraclehome112030_64 làm "somename" ở trên.
<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. Cách triển khai và cấu hình Oracle.ManagedDataAccess.Client.
B.1. Tải xuống ODP.NET_Managed_1120350_Beta.zip
B.1.1. Giải nén các tệp sau vào thư mục bin / thiết lập ứng dụng / máy chủ lưu trữ của bạn.
B.1.1.1. Oracle.ManagedDataAccess.dll
B.1.1.2. x64 \ Oracle.ManagedDataAccessDTC.dll hoặc x86 \ Oracle.ManagedDataAccessDTC.dll
B.2. Thêm phần sau vào đầu app.config / web.config của ứng dụng / host của bạn (nếu bạn đã có phần tử configSection, hãy thêm phần vào đó:
<configSections>
<section name="oracle.manageddataaccess.client"
type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.112.3.50, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</configSections>
B.3. Thêm các phần sau vào cuối app.config / web.config của ứng dụng / host của bạn:
<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. Đối với tòa nhà:
C.1. Thêm phần này vào app.config của assembly EDMX của bạn:
(Chưa thử điều này với Oracle. Được quản lý DataAccess.Client chưa)
<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. Thêm tệp có tên Oracle.xsd vào cùng một hội đồng với nội dung:
<?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. Thêm XSD ở trên vào danh sách các Lược đồ của app.config ở trên.
C.4. Nếu bạn gặp lỗi đối với ánh xạ boolean trong khi xây dựng mặc dù quá trình xây dựng đang thành công, hãy thêm ánh xạ app.config vào devenv.exe.config của Visual Studio.
C.5. Nếu bạn muốn sử dụng Oracle.ManagedDataAccess.Client, hãy chỉnh sửa thuộc tính nhà cung cấp dữ liệu trong EDMX theo cách thủ công trước khi xây dựng (tôi chưa thử điều này) hoặc chỉnh sửa nó trước khi tạo Ngữ cảnh tại thời điểm chạy và tải MSSL từ bản sao đã chỉnh sửa thay vì từ tài nguyên (điều này có vẻ hoạt động và tôi cũng sử dụng một thủ thuật tương tự để chọn MSSL nào sẽ tải cho các nhà cung cấp DB khác nhau).
D. Để được hỗ trợ nhà thiết kế:
D.1. Tải xuống win64_11gR2_client.zip hoặc win32_11gR2_client.zip và cài đặt.
D.1.1. Chọn "Quản trị viên" làm loại cài đặt.
D.2. tải xuống ODT và cài đặt.
Tôi đã thử điều này (A và B) trên một máy trống (VM) với Windows 7 x64.
Quy trình này dường như không hoạt động với phiên bản x86 của Oracle.DataAccess.Client trên Windows x64.
Quy trình này dường như hoạt động với phiên bản x64 của Oracle.DataAccess.Client trên Windows x64 và với cả hai phiên bản Oracle.ManagedDataAccess.Client.