Building the Implications dictionary is done eagerly while facts are added by calling AddFact. The dictionary does not seem to be needed in all cases because conditions in IsSatisfiable shortcut the execution. The fix delay creates the dictionary when it is needed for the first time. This reduces the execution time on my machine from ~27 seconds to ~5 seconds, slightly better than EF5 which takes ~6 seconds.

Note that this fixes only one aspect of 1749. There may be other perf regressions in the code that builds and compiles the model.
Thanksgiving leftovers... (Fixes for several small bugs)

These are bugs that are quite simple to fix but are mostly low priority such that they generally get triaged out of releases.

https://entityframework.codeplex.com/workitem/133 Better exception message when AcceptChanges encounters a key conflict
 - This is about putting entity type names in the message so I also did it for common Attach and ReferentialConstraint violation cases.

https://entityframework.codeplex.com/workitem/356 Simplify exception message for connection failures
 - Note that the bug implies that we know that the reason for the failure is a connection failure. In fact all we know if that some method on the provider threw and exception. I updated the message to be clearer without being wrong. If we want to do something more complicated then it will have to be triaged as a separate item.
 - I will get a forward link to http://msdn.microsoft.com/en-us/data/jj592674

https://entityframework.codeplex.com/workitem/559 UpForGrabs: Remove "class" generic constraint from Include extension method
 - Done

https://entityframework.codeplex.com/workitem/666 Document DbContext.SaveChanges exceptions
 - Done

https://entityframework.codeplex.com/workitem/691 Key ordering unspecified exception could be more helpful
 - Per note on bug, just added forward links to documentation
 - Will get links for http://msdn.microsoft.com/en-us/data/jj591617#1.2 and http://msdn.microsoft.com/en-us/data/jj591583

https://entityframework.codeplex.com/workitem/844 Change DbMigrationsConfiguration.Seed Description
 - Done

https://entityframework.codeplex.com/workitem/1052 Doc: IRelated.IsLoaded XML documentation is not up-to-date
 - Done
https://entityframework.codeplex.com/workitem/1053 Doc: EntityConnection.State XML documentation wrong
 - Done

https://entityframework.codeplex.com/workitem/1381 Make migrations configuration options such as AutomaticDataLossAllowed more discoverable
 - Updated the error message as suggested in the bug

https://entityframework.codeplex.com/workitem/1438 Consider making SqlSpatialServices public
 - Done

https://entityframework.codeplex.com/workitem/1439 Consider making InitializeDatabase methods virtual in all initializers
 - Done

https://entityframework.codeplex.com/workitem/1555 ObjectItemCollection doesn't seem to need [CLSCompliant(false)]
 - Removed all CLSCompiant(false) attributes and then added back only those that the compiler indicates are needed

https://entityframework.codeplex.com/workitem/1556 Three lines of dead code in InputForComputingCellGroups
 - Removed

https://entityframework.codeplex.com/workitem/1560 GenerateViews throws Sequence contains no matching element for incorrect container names
 - Added exception messages for this and also for hash calculation. Also added messages for single container methods when there is more than one container.
 - Updated tests to actually check the exception messages.

https://entityframework.codeplex.com/workitem/1639 Documentation :: misleading method description for DbModelBuilder.Types
 - Done

https://entityframework.codeplex.com/workitem/1708 Fix typos in code base
 - Done

https://entityframework.codeplex.com/workitem/1724 Consider converting debug methods from ObjectStateManager into functional tests
 - Both methods looked like they could be potentially useful if somebody makes changes in this area. Therefore, instead of removing them I added some checks that should avoid them being too slow when there are lots of entities but still provide value when running small tests such as the ones we have in the test suite.

https://entityframework.codeplex.com/workitem/1725 Assert followed by surprising exception when an EntityConnection and its underlying connection go out of sync
 - Changed assert into exception as suggested in bug.

https://entityframework.codeplex.com/workitem/1866 Documentation error or bug in HasDatabaseGeneratedOption method
 - Done
ACDC - ACompactDbProviderConfig
Adding DbProvider configuration for SQLCE to app.config/web.config to improve F5 and deployement experience
EF 6.1 - Fixes for #351, #610, #1035, #1622, #1700, #1797

Solution: Complete rewrite of EdmModelDiffer encompassing:
 - Removing XML fragment diffing; now uses EDM metadata exclusively.
 - Implements new object pairing algorithm, including fuzzy EntityType matching (80% property match)

Work Item: 351, 610, 1035, 1622, 1700, 1797
ColumnMapBabelFish: Fix for "Enum columns bails out with many Includes" (https://entityframework.codeplex.com/workitem/1686)

Whe translating the query tree we replace occurences of enum types with its underlying type. After this is done all typed items we create in later phases of the translation are of primitive types. However the tree contains a column map which is used to generate code that is materializing entities. If this column map had to be rewritten we would change the type of enum properties to its underlying type beacuse the newly created replacement property/variable would be of a primitive type. This resulted in emitting materialization code that was meant to be used with prmitive types but not with enums. This code actually worked fine in majority of cases for non-key properties however in case of key properties we do some additional validation that checks whether the type of the materialized value is the same as the type of the key property and this validation failed because types were different. The fix is not to retain the type of the column if it was of an enum type when rewriting column maps.

which resulted in emitting code that was missing a cast
SnowdenizingProviderServices - making the internal SetParameterValue method public (fixes http://entityframework.codeplex.com/workitem/1867)

In DbProviderServices we follow a pattern where we have public instance methods calling into their protected counterparts to enable creating wrapping providers. We didn't follow this pattern for the SetParameterValue method (it was internal) which caused issues if the provider had some additional logic to process parameter values before setting them - for instance a provider wrapping SqlServerProviderServices was not usable with spatial types where the conversion from EF specific spatial types to Sql Server specific spatial types for parameters happens in the SetDbParameterValue method which was not accessible to the wrapping provider.
EF 6.1 - Fix for #1841 - Update-Database deletes database on error

Problem: After #640, when an error occurs during update-database, we drop the target database if we created it. However, we should only drop if no migrations were applied.
Solution: Add a check for applied migrations to the recovery logic.

Work Item: 1841
EF 6.1 - Fix for #1607 - Migrations :: moving from TPH to table TPT fails (PK already exists)

Problem: Creating a new table with the same name as another previously renamed table would cause a PK name collision.
Solution: When renaming a table, also rename the PK.

Work Item: 1607
EF 6.1 - Fixes for #776, #937

- Migrations: Changing data type of primary key breaks migrations
- Migrations: Support changing facets of primary key (keeping the same data type)

Problem: PK columns cannot be altered unless there are no referencing objects: PK, FKs, Indexes.
Solution: Enhance differ to detect altered PK columns during PK diff and to generate the corresponding drop/create operations of referencing objects.

Work Item: 776, 937
IHateRepeatingMyselfIHateRepeatingMyself - Ignore duplicate provider config entries (Fixes workitem #1800)

EF only allowed one provider config entry for each provider invariant name. However in case of websites it is possible to have a hierarchy of websites which results in squashing all config settings. This results in duplicate provider entries which caused an exception. The fix is to ignore duplicate entries.
SqlCe35Revival
-Adding SQL Server Compact 3.5 Entity Framework provider to
EntityFramework solution
-Adding SQL Server Compact 3.5 EF Provider NuGet package
-Added SimpleScenario Unit Tests for SQLCE 3.5 Provider

(Squashed FxCop suppression commits)
With EF6 view generation runs for several hours until OutOfMemoryException is thrown (used to complete in 3 hours with EF5)
FragmentQueryKBChaseSupport.IsSatisfiable creates a context object for the input expression. The context contains a Solver instance that accumulates state (vertices) while it builds a ROBDD.
The input expression and the kb expression are then processed resulting in a new expression. The same context is re-used while trying to verify its satisfiability. Thus the code that builds the ROBDD for the new expression mixes vertices from the previous ROBDD and the new one, resulting in a much larger graph.
The fix creates a new context (with solver) and uses it to verify the satisfiability of the transformed expression.
With this fix view generation runs in about 8 seconds (release build)
Second part of the fix for "nvarchar" columns with MaxLength attribute.
This change fixes two issues in the code-based migrations:
1.  Code-based migrations didn't detect that the default value for the maxLength facet of the unspecified-length nvarchar type is different from the default nvarchar(max) type and thus produced c.String() instead of c.String(maxLength: 4000)
2.  When only the store type name was specified and the maxLength was omitted: c.String(storeType: "nvarchar")
Migrations would still use the EdmType of the original store type to determine the default value for maxLength

Work item: 1784
Updating the build infrastructure to match EFDesigner commit
83817dc932c65180c554c0c9608e69717c1c72d6 - the new build infrstaructure
which supports servicing better.

Incorporating changes to the E2ETests.

Updating EFToolsString to be tokenized and the WixId to be automatically
calculated.

Make sure VsIdeTestHostAdapter uses correct versions and updates
EFTools.msbuild to correct ReRunTests target.

This version still pulls in a fixed version of the runtime to the designer
build - that is still to be fixed.
Second part of the fix for "nvarchar" columns with MaxLength attribute.
This change fixes two issues in the code-based migrations:
1.  Code-based migrations didn't detect that the default value for the maxLength facet of the unspecified-length nvarchar type is different from the default nvarchar(max) type and thus produced c.String() instead of c.String(maxLength: 4000)
2.  When only the store type name was specified and the maxLength was omitted: c.String(storeType: "nvarchar")
Migrations would still use the EdmType of the original store type to determine the default value for maxLength

Work item: 1784
Merge branch 'hotfix-6.0.2' into master

Conflicts:
	src/EntityFramework/Core/Common/Utils/Boolean/KnowledgeBase.cs
	src/EntityFramework/Migrations/Infrastructure/EdmModelDiffer.cs
Merge branch 'master' of https://git01.codeplex.com/entityframework
Exclude sample databases in DropAllDatabases.sql and move to tools directory
Fixing CI build break - ensuring EntityFramework.SqlServerCompact.Legacy nupkg can be built also
Fix for Issue 1870 - porting fix from EFDesigner/hotfix-6.0.2 80be642753c1 fixing Extensibility DLL causing install failure over existing install