Entity Framework 6 Code First Migration не работает с базой данных Oracle - PullRequest
0 голосов
/ 06 сентября 2018

Я занимаюсь разработкой приложения ASP.NET MVC 5 с EF6 и базой данных Oracle.

Я использую код Сначала подход, я создал свои сущности и класс My Context, а затем я попробовал Enable and Add a Migration, но я получил эту ошибку.

Однако, если я использую SQL SERVER вместо базы данных Oracle, он работает нормально, но не с базой данных Oracle.

Это ошибка:

System.Data.Entity.Core.ProviderIncompatibleException: An error occurred accessing the database. 
This usually means that the connection to the database failed. Check that the connection string is correct and that the appropriate

Конструктор DbContext используется для его указания или поиска в файл конфигурации приложения. См. http://go.microsoft.com/fwlink/?LinkId=386386 для получения информации о DbContext и соединениях. См. Внутреннее исключение для деталей отказа. ---> System.Data.Entity.Core.ProviderIncompatibleException: поставщик не возвращает строку ProviderManifestToken. ---> Oracle.ManagedDataAccess.Client.OracleException: ORA-12154: TNS: невозможно указывать удостоверение личности ---> OracleInternal.Network.NetworkException: ORA-12154: TNS: невозможно Указатель по связям с общественностью в OracleInternal.Network.AddressResolution..ctor (String TNSAlias, String instanceName) в OracleInternal.Network.OracleCommunication.DoConnect (String tnsDescriptor) в OracleInternal.Network.OracleCommunication.Connect (строковый tnsDescriptor, логический doNAHandshake, строковое IName) в OracleInternal.ServiceObjects.OracleConnectionImpl.Connect (ConnectionString cs, логическое значение bOpenEndUserSession, OracleConnection connRefForCriteria, String instanceName) --- Конец внутренней трассировки стека исключений --- в OracleInternal.ConnectionPool.PoolManager 3.Get(ConnectionString csWithDiffOrNewPwd, Boolean bGetForApp, OracleConnection connRefForCriteria, String affinityInstanceName, Boolean bForceMatch) at OracleInternal.ConnectionPool.OraclePoolManager.Get(ConnectionString csWithNewPassword, Boolean bGetForApp, OracleConnection connRefForCriteria, String affinityInstanceName, Boolean bForceMatch) at OracleInternal.ConnectionPool.OracleConnectionDispenser 3.Get (ConnectionString cs, PM conPM, ConnectionString pmCS, SecureString securedPassword, SecureString securedProxyPassword, OracleConnection connRefForCriteria) в Oracle.ManagedDataAccess.Client.OracleConnection.Open () в Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices.GetDbProviderManifestToken (DbConnection подключение) в System.Data.Entity.Core.Common.DbProviderServices.GetProviderManifestToken (DbConnection подключение) --- Конец внутренней трассировки стека исключений --- в System.Data.Entity.Core.Common.DbProviderServices.GetProviderManifestToken (DbConnection подключение) в System.Data.Entity.Utilities.DbProviderServicesExtensions.GetProviderManifestTokenChecked (DbProviderServices провайдер услуги, подключение DbConnection) --- Конец внутренней трассировки стека исключений --- в System.Data.Entity.Utilities.DbProviderServicesExtensions.GetProviderManifestTokenChecked (DbProviderServices провайдер услуги, подключение DbConnection) в System.Data.Entity.Infrastructure.DefaultManifestTokenResolver. <> c__DisplayClass1.b__0 (Tuple 3 k) at System.Collections.Concurrent.ConcurrentDictionary 2.GetOrAdd (TKey клавиша, Func 2 valueFactory) at System.Data.Entity.Infrastructure.DefaultManifestTokenResolver.ResolveManifestToken(DbConnection connection) at System.Data.Entity.Utilities.DbConnectionExtensions.GetProviderInfo(DbConnection connection, DbProviderManifest& providerManifest) at System.Data.Entity.DbModelBuilder.Build(DbConnection providerConnection) at System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext) at System.Data.Entity.Internal.RetryLazy 2.GetValue (ввод TInput) в System.Data.Entity.Internal.LazyInternalContext.InitializeContext () в System.Data.Entity.Internal.LazyInternalContext.get_ModelBeingInitialized () в System.Data.Entity.Infrastructure.EdmxWriter.WriteEdmx (DbContext контекст, писатель XmlWriter) в System.Data.Entity.Utilities.DbContextExtensions. <> c__DisplayClass1.b__0 (XmlWriter ж) в System.Data.Entity.Utilities.DbContextExtensions.GetModel (Action`1 WriteXml) в System.Data.Entity.Utilities.DbContextExtensions.GetModel (DbContext контекст) в System.Data.Entity.Migrations.DbMigrator..ctor (DbMigrationsConfiguration конфигурация, DbContext usersContext, DatabaseExistenceState senceState, Boolean namedByCreateDatabase) в System.Data.Entity.Migrations.DbMigrator..ctor (DbMigrationsConfiguration конфигурация) в System.Data.Entity.Migrations.Design.MigrationScaffolder..ctor (DbMigrationsConfiguration migrationsConfiguration) в System.Data.Entity.Migrations.Design.ToolingFacade.ScaffoldRunner.RunCore ()в System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.Run () Произошла ошибка при доступе к базе данных. Обычно это означает, что соединение с базой данных не удалось. Проверьте, что соединение строка верна и соответствующий конструктор DbContext используется для его указания или поиска в файле конфигурации приложения. См. http://go.microsoft.com/fwlink/?LinkId=386386 для получения информации о DbContext и соединения. Смотрите внутреннее исключение для деталей отказ *.

А это моя строка подключения:

<connectionStrings>
    <add name="BiatContext" providerName="Oracle.ManagedDataAccess.Client" connectionString="User Id=SYSTEM;Password=admin;Data Source=oracle" />
</connectionStrings>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...