This is my first time building a .NET application that connects to a DB2 database, and I really have no idea where to begin as I've never worked with DB2 before.
Here's what I've done so far:
Installed IBM.Data.DB2.EntityFramework
Installed IBM.Data.DB2.iSeries
Installed Entity Framework 6
Now when I try to create a code first model, I don't see DB2 in the list of available data sources, so I'm guessing I need to figure that out first.
What do I need to do to get DB2 added as a data source? I know it's possible because I can see it in the first screenshot in this previously answered question.
you have to install IBM Data Server Client Packages and IBM Database Add-Ins for Visual Studio
I have just installed Entity Framework Power Tools Beta 4 into Visual Studio 2013. I am running a .NET framework 4.5 project, using Entity Framework code first with an Oracle database. I have installed the latest ODP.NET from Oracle (version 12), including the EF drivers, and I have Oracle.ManagedDataAccess and Oracle.ManagedDataAccess.EntityFramework referenced in my project.
This set up allows me to run my project and read and access data from the Oracle database. It all works fine. My problem is when I try to use the Entity Framework Power Tools. I can specify a connection using the Oracle database name and credentials, and the dialog says 'Test Connection succeeded'. However, after clicking the next button, I get the following error:
System.Data.ProviderIncompatibleException: The store provider factory type 'System.Data.OracleClient.OracleClientFactory' does not implement the IServiceProvider interface. Use a store provider that implements this interface.
I am confused because my project is able to use the installed ODP.NET as is to communicate with the Oracle database via Entity Framework. Most of the research I have done on the WWW suggests there should be a problem with versions and the contents of the web.config - but if this is the case surely I wouldn't be able to use EF with Oracle in my project without errors?
Is it just the case that the Power Tools do not work with Oracle?
Cheers!
Martin
As Christian says in his comment, you need to install ODP.NET as a provider that Power Tools can use. I did this by installing Oracle Developer Tools for Visual Studio.
I'm using EF 6 (Code first) with the IBM.Data.DB2.EntityFramwork nuget package to access a db2 database server. Working locally it all works as expected, but when deployed to a test server I get an exception: "System.MissingMethodException: Method not found: 'Void IBM.Data.DB2.InternalStruct6.SetDefault()"
I'm no DB2 wizard but I think the issue is related to a incompatible version of the db2 client drivers installed on the test server (9.7?). Entity framework 6 support needs version > 10.5. (I must have installed the 10.5 version locally at some point).
It would be nice to be able to run the application on any pc without additional dependencies, so my question is: Are there any way of skipping the db2 clients/drivers installation, and rather reference certain db2 dll's (or other nuget packages), to access db2 db servers?
Ok, I think asking the question resulted in a moment of enlightenment.
I guess the answer is NO, as the db2 clients/drivers actually installs the db2 odbc data source driver for db2. (Located in Administrative Tools -> Data Sources (ODBC)).
I know the EF Power Tools offers this but am loath to install them after installing VS2013 Update 2 since some of the Power Tool features are now part of Update 2. I already spent a good part of yesterday reinstalling VS2013 w/ integrated Update 2 after installing/uninstalling EF 6.1.0 Tools broke using the ADO.NET project templates. Is there anything built into Update 2 that allows this?
Honestly, the quickest way is usually by generating a database diagram via SQL Server Management Studio. Assuming the database has been generated, and your question is meant purely as a visual representation of the model.
I'm looking for an ADO.net 2.0 or later provider for Sybase database which seems to be known as Sybase ASE. To clarify, I'm interested in ASE, and not SQL Anywhere. Hopefully the provider will be included with the database, or free.
I can find mention of an ADO.net 1.1 provider; that's not what I want.
I can find mention of ODBC drivers and OLEDB providers; that's not what I want.
I've found the DataDirect ADO.net providers which are paid for; I guess that's the fallback position.
Thanks for your help
Having recently been down this road myself, I can only suggest that you wont find the answer through searching the net. If you are connecting to an ASE server, then you have a customer technical contact. Use that person, asking them to download the earlier mentioned Sybase 15 #ESD10.
From my experience (which I freely admit, was a bad one);
Sybase makes this sort of developer resource available to paying customers only.
The download, once you have it, will include a whole bunch of extras that you wont need. I still think that PowerDesigner is a great utility, but I think that what is included is a trial version, of limited long term value. I believe that what you want from the set is the OpenClient install, selecting the ADO.NET features.
I found the whole experience, from acquiring the developer resources (just identifying the right download was a struggle), to isolating out the two files necessary from the hundreds of installed files, to the fact that the install broke my existing RapidSql and DbArtisan installs, and finally that the current version goes no further than ADO.NET 2 provider support (you wont get EF wiring for example), to be truly frustrating.
No surprise then that I have not been able to find much support for ASE using nHibernate or subsonic either.
This question is fairly old but it seems to have gotten easier to get the ADO Connector.
Download the "Get a Free "Developer" Edition" from
http://scn.sap.com/community/developer-center/oltp-db
Choose Custom Install when given the option.
Only install the .Net ADO package from the custom install.
Reference the Sybase.AdoNet4.AseClient.dll in your solution from where the install put the files.
You should then be able perform queries, updates etc. in .NET by following the directions from here:
http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.sdk_12.5.1.adonet/html/adonet/DAFJEFIF.htm
As an alternative to the SAP/Sybase driver, we developed our own ADO.NET Core driver for ASE:
https://github.com/DataAction/AdoNetCore.AseClient
.NET Core was a key technology for us - in particular for AWS Lambda - and there is still no ADO.NET Core driver available from SAP/Sybase.
Our driver supports most of the SAP/Sybase ADO.NET features, aims to be a drop in replacement to the SAP/Sybase one for easy transition, and supports all of the .NET Frameworks you would care about.
You can get it on Nuget:
https://www.nuget.org/packages/AdoNetCore.AseClient
Sybase 15 #ESD10 has support for ADO.NET 2.0, according to this link at Sybase:
http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc20155.1500/html/newfesd/CBHJAABF.htm
New Features Open Server 15.0 and SDK 15.0 for Microsoft Windows, Linux, UNIX, and Mac OS X
ADO.NET 2.0 support
ASE ADO.NET Data Provider 2.0 is shipped with this SDK release. The ADO.NET 2.0 features supported in this version are:
* Provider factories
* Provider statistics
* Bulk update
* Bulk copy
* Asynchronous commands
* Extended pooling support to clear pools
* Common base classes
* Database metadata
For more information on the supported ADO.NET 2.0 features, see What’s New in ADO.NET 2.0.
From the sybase website:
Sybase support for ADO.NET, OLE DB, and ODBC
Adaptive Server version 15.0 contains new ODBC and OLE DB drivers developed by Sybase. The third-party rebranded ODBC and OLE DB Driver Kits included with previous versions are no longer shipped.
The retired ODBC Driver Kit was installed in %SYBASE%\ODBC, and registered with the ODBC Driver Manager as “Sybase ASE ODBC Driver”. The new ASE ODBC Driver by Sybase is installed in %SYBASE%\DataAccess\ODBC, and registered as “Adaptive Server Enterprise”. The version shipping with Adaptive Server and SDK 15.0 is version 15.0.0.50.
The retired OLE DB Driver Kit was installed in %SYBASE%\OLEDB, and used the provider short name of “Sybase.ASEOLEDBProvider” and the long name of “Sybase ASE OLE DB Provider”. The new ASE OLE DB Provider by Sybase is installed in %SYBASE%\DataAccess\OLEDB, and uses provider short name “ASEOLEDB”. The version shipping with SDK 15.0 is version 15.0.0.51.
Sybase recommends that you start your migration process the new ODBC and OLE DB drivers as soon as possible. New features introduced in Adaptive Server 15.0 are supported only by the new drivers.
See “New Features for OpenServer 15.0 and SDK 15.0 for Windows, Linux and UNIX”, for instructions on migrating to the new drivers.