Я занимаюсь разработкой приложения 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>