Ваш проект ссылается на последнюю версию Entity Framework... - Ошибка
Я пытаюсь создать модель данных объекта с Oracle. Я получаю эту ошибку.
![enter image description here]()
Я установил их для своего решения.
![enter image description here]()
Я также установил ODT для VS 2015.
Это мои ссылки, показывающие.
![enter image description here]()
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>
Чего мне не хватает?
Ответы
Ответ 1
"Ваш проект ссылается на последнюю версию Entity Framework" Проблема с VS 2017 и Oracle 12c
Когда мы добавляем модель данных Entity Data ADO.NET с подключением Oracle, тогда появляется сообщение об ошибке "Ваш проект ссылается на последнюю версию Entity Framework..."
Здесь приведены шаги разрешения:
-
Установите Oracle ODTwithODAC122010 как 32Bit
-
Создайте свой проект в VS2017
-
Измените Active Solution Platform на 32 бит из AnyCPU
-
Открыть Инструменты- > Nuget PackageManager- > Управление пакетами Nuget для решения
5-Write Обзор области "ODP" и установка следующей программы
6- Откройте Tools- > Nuget PackageManager- > Консоль диспетчера пакетов
7- Запишите это
- Install-Package EntityFramework -Version 6.1.1
and Enter
8-Перезапустите Visual Studio, чтобы завершить процесс.
8-Re-Build ваше приложение
8- Добавить новый элемент модели данных сущности ADO.NET
9 - При необходимости Добавить новое подключение к Oracle (Источник данных = База данных Oracle (ODP.NET, Управляемый драйвер))
10 - Все в порядке.
Примечание. Я не хочу, чтобы EF6.1.3 не работал с VS2017 и Oracle ODTwithODAC122010. Но после всего этого процесса я изменил EF как EF6.1.3, он работает
Но я не советую вам.
Ответ 2
Сегодня я столкнулся с этой проблемой. Затем я решил следующие шаги:
Обычно, если мы хотим использовать MySQL с Entity Framework, мы добавим некоторые DLL, такие как MySql.Data, MySql.Data.Entity.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
Ответ 3
вам нужно перейти к вашему proyect → properties → Compile → И установить платформу для x86
Сохраните все изменения, перестройте, добавьте модель данных сущности, и теперь она будет работать.
Это случалось с нами на нашей работе много раз!
Это связано с тем, что ODT для 32 бит, и, вероятно, у вас есть проект в AnyCpu или x64, а ваша операционная система - x64.
Надеюсь, что это поможет
Ответ 4
Установите Entity Framework, если он не установлен, перестройте проект и добавьте новое соединение. Это решает проблему для меня.
Ответ 5
Мне удалось решить эту проблему, обновив Entity Framework до 6.1.3, Oracle Managed Data Access до 12.1.24160719 и Oracle Managed Data Entity Framework до 12.1.2400. Пожалуйста, используйте nuget manager для обновления. После этого он РАБОТАЕТ!!!
Ответ 6
Мой компьютер:
Win 7 64 бит
VS 2015
Сервер Oracle:
версия 12G - 32-битная
Что я пробовал до успеха:
-downgrade Oracle.ManagedDataAccess.EntityFramework и Oracle.ManagedDataAccess с 18.3.0 по 12.2.20190115
-Change Режим сборки с любого процессора на x86
-Configuration 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>
-Nuget установлено:
Oracle.DataAccess.x86 - v.2.112.1
Oracle.ManagedDataAccess.EntityFramework - v.12.2.20190115
Oracle.ManagedDataAccess - v.12.2.1100
EntityFramework - v.6.2.0
установленный ODAC: ODTwithODAC122011.zip
Ответ 7
Следующая ссылка помогла мне...
Решить ссылки на проекты
В моем случае смысл состоял в том, чтобы добавить ссылки, тщательно сохраняя версию согласованной, и соответственно обновить файл конфигурации.
Ответ 8
во-первых, перейдите и удалите модель, чтобы удалить обе ссылки на структуру сущностей.
После этого добавьте свою модель и запишите ее в консоли диспетчера пакетов:
install-package EntityFramework
Ответ 9
Как указано здесь
введите описание ссылки здесь, добавив ниже в web.config, решил эту проблему для меня.
Задайте тип DbConfiguration в файле конфигурации:
<entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">