Entity Framework 6.1 is now available on NuGet, and this blog post by Rowan Miller, Program Manager for the Entity Framework team, covers the major new features in this release. Most of the new features are also applicable to SQL Server Compact users, for example Code First Model from Database in the EDM Wizard, which is also available with SQL Server Compact if the latest SQL Server Compact Toolbox version is installed. Rather than repeating the blog post from Rowan, this blog post will look at some of the minor features in EF 6.1 affecting SQL Server Compact. (A few of which I have had Pull Requests accepted)
#824 Designer: DDL Generation Template for SQL CE should separate each statement with GO
This fix allows you to run the script created by the “Generate Database from Model” EF Tools feature in the latest version of the Toolbox, as described here.
#898 Reverse Engineer Code First: Using database name as entity container name causes issues when database name has invalid chars (bad for SQL Compact)
This fix effectively makes “Code First from Database” work with SQL Server Compact, as it was previously broken.
#1322 SqlCePropertyMaxLengthConvention should be updated to reflect changes in the standard PropertyMaxLengthConvention
This fix makes code more portable between database engines
#1852 Migration for EF 6.0 wrong migration script for altering property (required->non required) for SQL CE 4
This fix ensures that NULL or NOT NULL is always specified in migration SQL when changing between [Required] and not required
#1863 Add DbProvider registration to SQL Server Compact NuGet package
This fix enables private deployment of SQL Server Compact, both for use in desktop, web and unit test scenarios (and makes the workaround I describe here obsolete)
#1878 Add SQL Server Compact 3.5 provider + NuGet package
This feature enables you to use SQL Server Compact 3.5 with Entity Framework 6.x, via the EntityFramework.SqlServerCompact.Legacy NuGet package, and includes all the same fixes and features as the SQL Compact 4.0 provider. I blogged about the new provider earlier.
#1962 SQL Server Compact data provider for EF does not support some Entity SQL canonical functions
It turned out, that the current SQL Server Compact data provider only supported the “canonical” functions defined for EF 1.0 – this fix adds support for most applicable functions from EF 4. The following functions are not supported due the SQL Server Compact having a limited number of data types and built-in functions: StDev, StDevP, Var, VarP, Reverse, CurrentUtcDateTime, CurrentDateTimeOffset, GetTotalOffsetMinutes, CreateDateTimeOffset, CreateTime, AddMicroseconds, AddNanoseconds, DiffMicroseconds, DiffNanoseconds