프로젝트에서 엔티티 프레임워크의 최신 버전을 참조하고 있습니다... - 오류
Oracle을 사용하여 엔티티 데이터 모델을 생성하려고 합니다.이 오류가 발생하고 있습니다.
솔루션을 위해 설치했습니다.
VS 2015용 ODT도 설치했습니다.
이것들이 제 참고 자료들입니다.
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" />
</configSections>
<connectionStrings>
<add name="OracleDbContext"
providerName="Oracle.ManagedDataAccess.Client"
connectionString="User Id=system;Password=myPassword;Data Source=ABC_DB" />
</connectionStrings>
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
<system.web>
<authentication mode="None" />
<compilation debug="true" targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.2" />
</system.web>
<system.webServer>
<modules>
<remove name="FormsAuthentication" />
</modules>
</system.webServer>
<runtime>
........
</runtime>
<entityFramework>
<defaultConnectionFactory
type="Oracle.ManagedDataAccess.EntityFramework.OracleConnectionFactory, Oracle.ManagedDataAccess.EntityFramework">
</defaultConnectionFactory>
<providers>
<!--<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="Oracle.ManagedDataAccess.Client"
type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />-->
<provider invariantName="Oracle.ManagedDataAccess.Client"
type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</providers>
</entityFramework>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" />
</compilers>
</system.codedom>
<system.data>
<DbProviderFactories>
<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.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>
</system.data>
<oracle.manageddataaccess.client>
<version number="*">
<dataSources>
<dataSource alias="SampleDataSource" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL))) " />
</dataSources>
</version>
</oracle.manageddataaccess.client>
제가 무엇을 빠뜨리고 있나요?
VS 2017 및 Oracle 12c와 관련된 "당신의 프로젝트는 엔티티 프레임워크의 최신 버전을 참조합니다" 문제 Oracle 연결이 있는 ADO.NET 엔티티 데이터 모델 항목을 추가하면 "당신의 프로젝트는 엔티티 프레임워크의 최신 버전을 참조합니다."라는 오류 메시지가 표시됩니다.."
해결 단계는 다음과 같습니다.
ODAC122010을 32비트로 사용하는 Oracle ODT 설치
VS2017에서 프로젝트 생성
모든 CPU에서 Active Solution 플랫폼을 32비트로 변경
개방형 도구->Nuget Package Manager-> 솔루션용 Nuget 패키지 관리
5-Write Browse 영역 "ODP" 및 다음 프로그램 설치
Oracle. Managed Data Access
Oracle.ManagedDataAccess.엔티티 프레임워크
6 - 오픈 툴 -> 너겟 패키지 매니저 -> 패키지 관리자 콘솔
7 - 이 문서를 작성합니다.
- Install-Package EntityFramework -Version 6.1.1
and Enter
8-Visual Studio를 다시 시작하여 프로세스 완료
8-응용프로그램 재구축
8 - 새 항목 ADO.NET 엔티티 데이터 모델 추가
9-필요한 경우 Oracle에 새 연결 추가(Data Source = Oracle Database(ODP).NET, 관리 드라이버)
10 - 모든 것이 정상입니다.
참고: EF6.1.3은 VS2017과 함께 작동하지 않으며 Oracle ODT는 ODAC122010과 함께 작동하지 않습니다.그러나 이러한 모든 과정을 거친 후에 저는 EF6.1.3으로 EF를 변경했습니다. 그것은 작동하고 있지만 저는 당신에게 조언하지 않습니다.
저는 오늘 이 문제를 만났습니다.그런 다음 다음 단계를 수행하여 해결했습니다.
일반적으로, 우리가 Entity Framework에서 MySQL을 사용하기를 원할 경우, 우리는 MySql과 같은 DLL을 추가할 것입니다.데이터, MySql.데이터. 엔티티.EF6.
그러나 Visual Studio가 MySQL과 함께 작동하는 데 필요한 한 가지를 잊었습니다.
App.config/Web.config에 구성을 추가하는 중입니다.
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider></providers>
</entityFramework>
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient" />
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
그런 다음 전체 프로젝트를 구축하고 다시 시도하십시오.
또 다른 해결책은 Nuget을 사용하여 MySQL dll을 추가하는 것입니다.구성이 App.config/Web.config 파일에 추가됩니다.
프로젝트로 이동해야 합니다. -->속성 -->컴파일 -->플랫폼을 x86으로 설정합니다.
모든 변경사항을 저장하고, 다시 작성하고, 엔터티 데이터 모델을 추가하면 이제 작동합니다.
우리 회사에서 그런 일이 자주 있었어요!
이는 ODT가 32비트용이기 때문입니다. 프로젝트가 AnyCpu 또는 x64로 되어 있고 운영 체제가 x64로 되어 있을 수 있습니다.
도움이 되길 바랍니다.
내 컴퓨터: Win 764 비트
VS 2015
Oracle 서버:
버전 12G - 32비트
성공할 때까지 노력한 것:
- Oracle 다운그레이드.관리 데이터 액세스.엔티티 프레임워크 및 오라클.18.3.0에서 12.2.20190115까지 관리되는 데이터 액세스
-모든 CPU에서 x86으로 빌드 모드 변경
-구성 app.config:
<configSections>
<section name="Oracle.ManagedDataAccess.Client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
<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.122.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</configSections>
<entityFramework>
<defaultConnectionFactory type="Oracle.ManagedDataAccess.EntityFramework.OracleConnectionFactory, Oracle.ManagedDataAccess.EntityFramework"></defaultConnectionFactory>
<providers>
<provider invariantName="Oracle.ManagedDataAccess.Client" type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.122.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</providers>
</entityFramework>
<system.data>
<DbProviderFactories>
<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.122.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>
</system.data>
- Nugget 설치:오라클.데이터 액세스.x86 - v.2.112.1
Oracle.ManagedDataAccess.엔티티 프레임워크 - v.12.2.20190115
Oracle.ManagedDataAccess - v.12.2.1100
엔티티 프레임워크 - v.6.2.0
설치된 ODAC : ODAC122011.zip과 함께 ODT
Entity Framework가 설치되지 않은 경우 설치하고 프로젝트를 재구성한 후 새 연결을 추가합니다.그것은 저에게 그 문제를 해결해 줍니다.
Entity Framework를 6.1.3으로, Oracle Managed Data Access를 12.1.24160719로, Oracle Managed Data Access Entity Framework를 12.1.2400으로 업데이트하여 이 문제를 해결할 수 있었습니다.뉘트 관리자를 사용하여 업데이트하십시오.이것이 끝나면, 효과가 있습니다!!!
다음 링크는 제게 도움이 되었습니다...프로젝트 참조 해결
제 경우에는 버전을 신중하게 일관되게 유지하고 그에 따라 구성 파일을 업데이트하는 것이 중요했습니다.
먼저 이동 및 삭제 모델은 두 도면요소 프레임워크 참조를 모두 삭제합니다.
그런 다음 모델을 추가하고 패키지 관리자 콘솔에 다음과 같이 기록합니다.
install-package EntityFramework
여기에 주어진 것처럼 web.config에 아래 링크 설명을 추가하여 이 문제를 해결했습니다.
구성 파일에서 DbConfiguration 유형을 설정합니다.
<entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">
언급URL : https://stackoverflow.com/questions/40745182/your-project-references-the-latest-version-of-entity-framework-error
'IT' 카테고리의 다른 글
C 표준 보증 버퍼는 Null 터미네이터를 지나치지 않습니까? (0) | 2023.07.02 |
---|---|
Python panda: 데이터 프레임 행을 한 행씩 채우기 (0) | 2023.07.02 |
Heroku에서 Node.js 앱을 만들 때 Git에 "node_modules" 폴더를 체크인해야 합니까? (0) | 2023.07.02 |
MongoDB의 ObjectIds는 어떻게 생성됩니까? (0) | 2023.06.27 |
model.find()가 mongoose에서 비어 있음을 반환합니다. (0) | 2023.06.27 |