entity-frameworkentity-framework-6sap-asedatadirect

Trying to use DDtek Datadirect Sybase drivers as a provider for Entity Framework 6, can't get it configured correctly


Trying to use DDtek Datadirect Sybase drivers as a provider for Enttiy Framework 6, can't get it configured correctly..

It looks like in 3.3 there is no DDtek.Sybase.Entity,

We have a trial version of 4.2 which has the DLL, so I've installed that on.

Here is my providers section of the web.config, where I think the error lives

 <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="DDTek.Sybase.4.2" type="DDTek.Sybase.Entity.ProviderServices, DDTek.Sybase.Entity,
         Version=4.2.0.0, Culture=neutral, PublicKeyToken=c84cd5c63851e072" /  
         </providers>   
    </entityFramework>

and here is my connection string

<add name="DefaultConnection" connectionString="host='XXXX.XXX';Pooling=true;Port='6000';UID='XXXXX';Password=XXXXX;Database='XXXX';Min Pool Size=5;Load Balance Timeout=30;Connection Timeout = 30000;Max Pool Size=50;Workstation ID='SPN'; Clone Connection If Needed =true; Fetch Buffer Size = 40960" providerName="DDTek.Sybase.4.2" /> 

The connection string, minus the providername bit works in 3.3, non EF.

Here is the error I'm getting...

The Entity Framework provider type 'DDTek.Sybase.Entity.ProviderServices, DDTek.Sybase.Entity, Version=4.2.0.0, Culture=neutral, PublicKeyToken=c84cd5c63851e072' registered in the application config file for the ADO.NET provider with invariant name 'DDTek.Sybase.4.2' could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information.

Looking at more documentation I changed the name to DDTek.Sybase (default) instead of DDTek.Sybase.4.2 (recommended fro multiple versions installed (which there are, but only one supports EF)

and this is the error I get instead

The Entity Framework provider type 'DDTek.Sybase.Entity.ProviderServices, DDTek.Sybase.Entity, Version=4.2.0.0, Culture=neutral, PublicKeyToken=c84cd5c63851e072' registered in the application config file for the ADO.NET provider with invariant name 'DDTek.Sybase' could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information.

Has anyone successfully set this up using the Progress/DataDirect drivers?

I'm 100% noob to Entity Framework, so no idea is too small, or unappreicated


Solution

  • The DataDirect Drivers do not support EF 6.0 as they previously told me, it only supports 5.0.

    So I converted it to work with MSDB, in like 10 min (Most of which was commenting out bits of Sybase + ddtek stuff)

    The new connectionstring looked like this

       <add name="DefaultConnectionMSold" connectionString="Data Source=XXXXXXXXX;Initial Catalog=my_project;Integrated Security=True" providerName="System.Data.SqlClient"/>