Incorporate NuGet 2.7 changes into NuGet.targets
Add build extensibilitiy points and parameterize the build system to provide better control over output tasks like signing and enable servicing build artifacts separately.
Merge branch 'release-6.0.0'
Parameterize build version properties to add support for custom versioning.
fixing tests when running on LocalDB. CR: BriceLam
additional small fix for sql azure
Update build to remove InternalsVisibleTo attributes from package as was previously done
Renamed the mapping classes and variables by removing the 'Storage' prefix. Introduced an ILegacyMappingItem interface to have the means of providing the previous full type name to the mapping hash builder, in order to avoid changes to the computed mapping hash values.
added some convention tests

Added Tests for failing conventions scenarios
fixing build break on CI server. CR:LukeW
Merge branch 'release-6.0.0'

Conflicts:
	EF.msbuild
	src/NuGet/EntityFramework.SqlServerCompact/EntityFramework.SqlServerCompact.nuspec
	src/NuGet/EntityFramework/EntityFramework.nuspec
	src/SharedAssemblyVersionInfo.cs
	tools/EntityFramework.settings.targets
Extreme Indentation Explained: Embrace Growth (Fix for 1603 EF6 rc1 Index was outside the bounds of the array Exception)

The problem was that the indented text writer which is used to format SQL was written to cache indents up to a point and then stop caching. But there was a bug in this code where the cache array would always be accessed even if the index was above the point where caching stopped. The fix is to cache always, growing the cache store as necessary.
Merge branch 'release-6.0.0'
Migrations: Fix for general scaffolding issues when upgrading from 5 due to model construction changes in 6.

The fix is to make the differ more robust by improving the way we match elements across the source and target models. Previously we would match tables and FKs based on their store name attributes, which would fail when the same element had different names in the source/target models. Elements can have different names because of:

1) Changes to the model construction algorithm - such as the determinism change.
2) Changes to the execution order of user ModelBuilder configuration statements. (We may want to address this post RTM)

The solution is start the match from the conceptual model - entity sets for tables and nav. props for FKs. We effectively trace a path from the conceptual elements, through mapping and down into the store model to determine which tables and FKs are the same element across the two models being diff'ed.

Results:

1) Table-splitting issue (#1576) - now generates an empty migration after upgrade from 5.
2) Many-to-many issue (http://www.davepaquette.com/archive/2013/08/25/entity-framework-6-rc1.aspx) - now generates a single rename table operation after upgrade from 5.
3) Although not a goal of this fix, the differ is now resilient to 2 above and also closer to something that can be used outside of CF.

Work Item: 1576
Running code cleanup on contributed code and adding appropriate FxCop suppressions.
Merge branch 'release-6.0.0'

Fixed Storage name change conflicts.
Com S 228: Introduction to Data Structures (Fix for 1605: Increased memory usage EF5->EF6)

The reason for the increased memory usage in both EF5 and EF6 after SaveChanges until the collection of the context is that all the Added objects are converted to Unchanged objects in the state manager. Added objects do not have original values, while Unchanged objects do. The extra memory is used to track original values. The reason EF6 is using more memory here is due to a change made to improve the perf of original value tracking. Instead of using a List<StateManagerValue> we starting using a Dictionary<object, Dictionary<int, object>>.

The fix is to back out the change and start using List<StateManagerValue> again, where StateManagerValue is a value type. Some of the perf gains have been regained by reducing the number of linear scans and the number of times items are removed and then added back to the list. This has been done in a very restricted way at a local level to reduce risk. Further optimizations seem possible, but too risky at this time.

Unit tests were written for the current code and then moved over to the new code to help ensure that it is functionally the same.

In terms of memory usage, this change brings the increase in memory needed for tracking original values back down to EF5 levels.
Merge branch 'release-6.0.0'