2014-10-30 3 views
1

덕분에Oracle 12c Release 3 (12.1.0.1.0)에서 작동하도록 웹 응용 프로그램을 구성하는 방법은 무엇입니까?

을 찾고 위해 나는 가정 오라클 데이터 공급자 12C R3 지원 이다 엔티티 프레임 워크 (6) 사용하는 응용 프로그램을 작성했습니다.

ODP의이 버전을 설치했지만 문제가 있습니다. 나는 configuration instructions 다음 시도했다, 그러나 내 코드는 오라클 개체에 액세스하려고 할 때이 오류가 계속 발생합니다 :

0152: No Entity Framework provider found for the ADO.NET provider with invariant name 'Oracle.DataAccess.Client'.

참고 :이 주제에 다른 많은 StackOverflow의 질문이 있다는 것을 알고, 하지만 대부분은 나이가 들어서 EF 6을 지원하는 최신 버전의 ODP를 고려하지 않습니다.

도움이 되시길 바랍니다.

답변

1

마침내 EDP로 ODP를 사용할 수있었습니다.

내가 그것을 작동하게하려면 다음을했다 : -

먼저 설치의 ODAC의 12C 엔티티 프레임 워크 (6) 코드 첫 번째 및 코드 우선 마이그레이션에 대한 지원이 포함되어 릴리스 3; NuGet, .NET Framework 4.5.2; 및 ODP.NET, 관리되는 드라이버 XML DB.

당 으로

http://www.oracle.com/technetwork/topics/dotnet/whatsnew/index.html

내 프로젝트 참조로, 두 개의 참조를 추가하고 있습니다 :

Oracle.ManagedDataAccess.dll

Oracle.ManagedDataAccess.EntityFramework.dll

을 EF6 설치. 1.1 패키지 관리자 콘솔에서 다음 명령을 실행하여 NuGet을 사용합니다 (도구 -> NuGet 패키지 관리자 -> 패키지 관리자 콘솔로 입력 할 수 있음) :

Install-Package EntityFramework -Version 6.1.1 

그리고 당신의 Web.config 또는 공급자 및 유효한 연결 문자열 예를 들어 추가하여 Oracle.ManagedDataAccess을 사용하는 Web.config를 수정

<configSections> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    <section name="Oracle.ManagedDataAccess.Client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" /> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    </configSections> 
    <entityFramework> 
    <contexts> 
     <context type="App.Context.Default, App.Context"> 
     <databaseInitializer type="MyProject.Context.Config.ContextInitializer, MyProject.Context" /> 
     </context> 
    </contexts> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    <providers> 
     <provider invariantName="Oracle.ManagedDataAccess.Client" type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" /> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
    </providers> 
    </entityFramework> 
    <connectionStrings> 
    <add name="Default" providerName="Oracle.ManagedDataAccess.Client" connectionString="DATA SOURCE=XE;USER ID=User" /> 
    </connectionStrings> 

가 86로 응용 프로그램을 재 구축하고, EF6를 사용하기를, 코드 첫 번째를 사용하여 ADO.Net 엔터티 모델을 사용하여 모델을 추가하여 작동하는지 확인할 수 있습니다

관련 문제