3

IdentityServer3を設定してOracleデータベースを操作しようとしています。私はMSSQLのソリューションを使用していると私もOracleのバリエーションが必要です。Oracleの接続文字列で初期カタログを設定するにはどうすればよいですか?

初期化中に次のエラーが発生します。プロバイダがタイムアウト(30-45秒)に達したように見えてから、例外がスローされます。

The supplied SqlConnection does not specify an initial catalog or AttachDBFileName. 

System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Createにエラーが発生しました。ここで

IdentityServer3.EntityFramework.DbModelBuilderExtensions 
.RegisterScopeChildTablesForDelete[TScope](DbContext ctx) in 
IdentityServer3.EntityFramework\Source\Core.EntityFramework\Extensions 
\DbModelBuilderExtensions.cs 

に、より具体的には、私のweb.config接続文字列です:

<add name="ApplicationDbContext" 
    providerName="Oracle.ManagedDataAccess.Client" 
    connectionString="User Id=xxxxxxx; 
         Password=xxxxxxx; 
         Data Source=OracleDataSource" /> 

、ここではweb.configの残りの部分(任意の方法をOracleへの関連)

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    <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" /> 
    </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.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" /> 
    </DbProviderFactories> 
    </system.data> 

    <oracle.manageddataaccess.client> 
    <version number="*"> 
     <dataSources> 
     <dataSource alias="OracleDataSource" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE))) " /> 
     </dataSources> 
    </version> 
    </oracle.manageddataaccess.client> 

どのようにすることができますですOracleの接続文字列にInitial Catalogを追加しますか?

バージョン

  • IdentityServer3:V 2.5

  • EntityFramework:6.1.3

  • オラクルManagedDataAccess EntityFramework:12.1.4

アップデート1:

私は単に私のCONNの文字列にInitial Catalogを追加し、動作するようには思えない(Oracle XE, C++ ADO)試した:

<add name="ApplicationDbContext" 
    providerName="Oracle.ManagedDataAccess.Client" 
    connectionString="User Id=xxxxxxx; 
         Password=xxxxxxx; 
         Data Source=OracleDataSource; 
         Initial catalog=XE" /> 

たぶんXE私のデータベースの名前ではないのですか?代わりにschemaを使用する必要がありますか?

答えて

0

問題が

<defaultConnectionFactory type="Oracle.ManagedDataAccess.EntityFramework.OracleConnectionFactory, Oracle.ManagedDataAccess.EntityFramework" /> 
に移動 OracleConnectionFactoryものと交換した後 defaultConnectionFactory

<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 

ました

関連する問題