A list of Entity Framework providers for various databases

.NetDatabaseEntity FrameworkOrm

.Net Problem Overview


Which providers are there and your experience using them

I would like to know about all possible native .NET Framework Entity Framework providers that are out there as well as their limitations compared to the default LINQ2Entities (from MS for MS SQL). If there are more for the same database even better. Tell me and I'll be updating this post with this list.

Feel free to add additional providers directly into this post or provide an answer and others (including me) will add it to the list.

Entity Framework 1

Microsoft SQL Server Standard/Enterprise/Express

Microsoft SQL Server CE (Compact Edition)

  • Any provider?

MySQL

  • MySQL Connector (since version 6.0) - I've read about issues when using Skip(), Take() and Sort() in the same expression tree - everyone welcome to input their experience/knowledge regarding this.

    > Note: MySQL Connector/NET Visual Studio Integration is not supported in the Express Editions of Visual Studio, meaning you won't be able to view MySQL databases in the Database explorer window or add a MySQL data source via Visual Studio wizard dialog boxes. Some users may find that this limits their ability to use Entity Framework and MySQL within Visual Studio Express).

  • Devart dotConnect for MySQL - similar issues to MySql's connector as I've read and both try to blame MS for it [these issues are supposed to be solved]

SQLite

PostgreSQL

Oracle

DB2

Sybase

Informix

Firebird

Provider Wrappers

Entity Framework 4 (beta)

Microsoft SQL Server

  • Microsoft's Linq to Entities 4 - shipped with .net 4.0 and Visual Studio 2010; so far the only provider for EF4

MySQL

SQLite

PostgreSQL

Oracle

Microsoft SQL Server Analysis Services (SSAS)

.Net Solutions


Solution 1 - .Net

DB2 will work, but if you want to use some of the out-of-the-box .NET features that we all take for granted (think membership and role providers), you will have quite a bit of work on your hands. DB2 doesn't really do well with Stored Procedures, so you are also looking at a lot of parameterized inline SQL.

I also had some performance issues with the provider from IBM. There is another provider available from a company called DataDirect. It looks to be more performant, but it will cost you. For something like an external facing website, where speed is important, the cost probably will not be an issue.

I am sure that DB2 is a great system if you are building on another platform, but it wasn’t really designed to play nice with .NET. Unless you are already married to DB2, I would look elsewhere.

Solution 2 - .Net

I don't think DB2 works with EF 4 yet. If it does, someone please correct me and tell me how its done. I cannot get the DB2 providers to show up in the Data Source dialogs.

Solution 3 - .Net

IBM's Data Server Provider for .NET allows Informix to work with EF. See here: link text

Solution 4 - .Net

IBM's Data Server Provider contains some limitations that make it irritating and fragile for more complex query scenarios. Also, EDMX designer doesn't work with Informix tables prefixed with "informix.*". See Here: link text

Solution 5 - .Net

You're missing System.Data.SQLite for SQLite. It's open source, and quite reliable from my experience. As far as I know it was one of the first EF providers for databases other than SQL Server

Solution 6 - .Net

The "Skip/Take and ordering" problems were fixed several months ago in the Devart provider.

Some notes about the EF4 support
At the moment we provide support for Visual Studio Beta 1 and EF4 Beta 1. We plan to release the build with EF4 support in the end of December - beginning of January. We cannot call our Entity Framework support an ideal one - this ORM was initially designed for MS SQL Server, so the possibility to take into account the marvels of other DBMSs is significantly limited.

There is a number of problems the one who implements an EF provider is simply unable to work around. Some examples are available http://msdn.microsoft.com/en-us/library/bb896273.aspx">here</a>;. The main problem is associated with the CROSS APLY and OUTER APPLY statements generated by EF runtime in some cases. Other DBMSs do not provide this statement, so the problem arises with translation. One also should realize that in case of legacy databases EF is generally unappliable.

We take into account the users that are not satisfied with the default Microsoft designer and ship http://www.devart.com/entitydeveloper/">Entity Developer - a powerful design time tool - with our products.

Solution 7 - .Net

EF 7 supports following DB providers

• Microsoft SQL Server

• SQLite

• Microsoft SQL Server Compact Edition

• Npgsql (PostgreSQL)

• IBM Data Servers

• InMemory (for testing)

Reference

Solution 8 - .Net

MySQL has a connector for EF4, the current version is 6.3.5 and its main functionalities are working fine but it still has issues with a few methods, e.g.

  • System.Data.Objects.ObjectContext.CreateDatabase()
  • System.Data.Objects.ObjectContext.DatabaseExists()

which makes it difficult to fully use the model-first approach. It's possible by manually editing the MySQL script (available with the CreateDatabaseScript method). The MySQL team doesn't seem eager to solve those bugs, I'm not sure what the commitment level actually is from their part but it certainly is lower than it once was.

That being said, the same methods fail with SQL CE too (they are not implemented, and I don't see the MS team as likely to tackle that soon).

Solution 9 - .Net

The issues with Connector/NET in Take/Skip operators have been fixed long ago (the EF provider is currently compatible with EF 5 & EF 4).

Among the bugs fixed:

http://bugs.mysql.com/bug.php?id=45723

http://bugs.mysql.com/bug.php?id=72148

http://bugs.mysql.com/bug.php?id=70828

http://bugs.mysql.com/bug.php?id=69751

Thanks.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionRobert KoritnikView Question on Stackoverflow
Solution 1 - .NetRepDetecView Answer on Stackoverflow
Solution 2 - .NetcamaincView Answer on Stackoverflow
Solution 3 - .NetJoelView Answer on Stackoverflow
Solution 4 - .NetJoelView Answer on Stackoverflow
Solution 5 - .NetThomas LevesqueView Answer on Stackoverflow
Solution 6 - .NetDevartView Answer on Stackoverflow
Solution 7 - .NetAamolView Answer on Stackoverflow
Solution 8 - .NetRedGlyphView Answer on Stackoverflow
Solution 9 - .NetFernando Gonzalez SanchezView Answer on Stackoverflow