Entity Framework – Is Entity Framework 6 Agnostic Across SQL Servers and OS Platforms?

centity-frameworknetsql server

It's my first time using sql server, I usually go with MySQL, so I'm unsure how to do this.

The project I'm assigned will be deployed to multiple platforms particularly PC's with different SQL server ranging from 2008 to 2014, some of them are express edition, some are standard edition and in Windows ranging from XP, 7, 8 and 8.1 for both x86 and 64 bit systems

If I use entity framework 6 in my development PC, 64-bit windows 8.1 and SQL Server 2012 Express. Will this pose a problem during deployment?

Best Answer

Entity Framework (EF) uses mostly basic syntax and keywords: select, join, distinct, etc. This basic syntax doesn't change too much from version to version.

Between SQL Server 2008 and SQL Server 2014, additional features were added, but they are outside the scope of EF.

If we study the head revision (04548560f3bc at the moment of writing) and especially the part of the source of EF which generates the queries, we can see that:

  • EF differentiates pre- and post-Katmai versions (Katmai is the codename of SQL Server 2008); see line 309.

  • Adapts himself to different versions of SQL Server.

  • Has very specific statements for the version 8.0 (SQL Server 2000); see line 450. It looks like SQL Server 2000 support is a nightmare even for EF.


This being said, make sure you run integration and system tests for every version of SQL Server you need to support.

Profiling is a different beast. If you notice issues with a query on some versions of SQL Server but not others, you may have to specify the SQL query manually, including having different queries depending on the version of the SQL Server.