it seems nobody had this problem before, so I hope annybody can help. So thanks in advance.
background:
console app,
entity framework 6.0.2 (same error with 6.1.1)
I need to implement a new Devart.Data.Oracle.OracleConnection.
Code: Select all
public class MyNewConnection: Devart.Data.Oracle.OracleConnection
{
}
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<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="v11.0"/>
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
<provider invariantName="Devart.Data.Oracle" type="Devart.Data.Oracle.Entity.OracleEntityProviderServices, Devart.Data.Oracle.Entity, Version=7.7.226.6, Culture=neutral, PublicKeyToken=09af7300eec23701" />
</providers>
</entityFramework>
<connectionStrings>
<add name="Entities" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=Devart.Data.Oracle;provider connection string="user id=***;password=***;server=***;home=OraHome11gP4_Client32;persist security info=True"" providerName="System.Data.EntityClient" />
</connectionStrings>
<system.data>
<DbProviderFactories>
<remove invariant="Devart.Data.Oracle" />
<add name="dotConnect for Oracle" invariant="Devart.Data.Oracle" description="Devart dotConnect for Oracle" type="Devart.Data.Oracle.OracleProviderFactory, Devart.Data.Oracle, Version=7.7.226.0, Culture=neutral, PublicKeyToken=09af7300eec23701" />
</DbProviderFactories>
</system.data>
</configuration>
Code: Select all
public class Configuration : DbConfiguration
{
public Configuration()
{
SetProviderServices("Devart.Data.Oracle", new Devart.Data.Oracle.Entity.OracleEntityProviderServices());
SetProviderFactory("Devart.Data.Oracle", Devart.Data.Oracle.OracleProviderFactory.Instance);
}
}
Code: Select all
...
private Entities _Entities;
private static MetadataWorkspace _Workspace = new MetadataWorkspace(
new[] { "res://*/Model.csdl", "res://*/Model.ssdl", "res://*/Model.msl" },
new[] { typeof(Entities).Assembly });
...
public ...()
{
OracleConnection connection = new OracleConnection
{
ConnectionString = "Data Source=**;User ID=***;password=***;",
};
EntityConnection entityConnection = new EntityConnection(_Workspace, connection);
_Entities = new Entities(entityConnection);
}
If I change now:
Code: Select all
OracleConnection connection = new OracleConnection
{
ConnectionString = "Data Source=**;User ID=***;password=***;",
};
Code: Select all
MyNewConnection connection = new MyNewConnection
{
ConnectionString = "Data Source=**;User ID=***;password=***;",
};
In devart we have no possibility with multithreading, so I need to implement a new connection. The problem is, that if a thread closed, the connection is closed too. And if multiple threads holds one connection, they cannot use it anymore.Unable to determine the DbProviderFactory type for connection of type 'MyNewConnection'. Make sure that the ADO.NET provider is installed or registered in the application config.
With EF 4 my "own" implemented Connection works fine. With EF 6 it doesnt. Can anybody help?