CodePlex #1567 - Constructor of ReadOnlyMetadataCollection has an IList<T> parameter. The methods that provide access to items by identity assume that the source list is a MetadataCollection<T> and cast, resulting in InvalidCastException. The solution here is to construct the metadata collection if the input list is not of type MetadataCollection<T>. Also replaced ReadOnlyMetadataCollection<EntitySet> with ReadOnlyCollection<EntitySet> for EdmFunction and related since it relies on the collection accepting null entries.
CodePlex #1559 - When the precision facet is not set via configuration (datetime2 - DateTimePropertyConfiguration) or via convention (decimal - DecimalPropertyConvention) in the conceptual model, the null value overrides the corresponding facet from the store model during facet mapping (the case of datetimeoffset and time). This causes NullReferenceException while attempting to retrive the facet value. Added checks to perform the override only if the conceptual model has non-null facet values.
Code First: RTM: Fixes for:

Two problems:

1) EntityTypeConfiguration - when configuring property mappings, we were not considering any mappings "inherited" via IsOfType fragments.
2) PropertyPath - GetHashCode could return different codes for the same logical property path because reflection can return different PropertyInfo instances for the same property.

Work Item: 1563, 1568
Merge branch 'release-6.0.0' of https://git01.codeplex.com/entityframework into rtm
Fixing FxCop break
ForEach it may concern (Remove use of List.ForEach)

List.ForEach is not available in .NET for Windows Store apps. Replaced with existing Each extension method where available, and with foreach elsewhere. Each is not always available because it is an internal extension method, which is therefore not accessible in the functional tests. Redefinition is not trivial because then the unit tests would see both definitions. We discussed creating a differently named method, but decided it was better to just move to foreach.
Added tests verifying that #1545 was fixed with #1568

Work Item: 1545
Merged release-6.0.0
Fixed bad code formatting.
This fixes Create Login batching in the test framework for SqlAzure
Exposing the expected shape of the data reader on ShaperFactory. This information can be used to used to initialize the BufferedDataRecord using strongly typed overloads. See CodePlex issue 1502.
Moving initialization from BufferedDataReader to BufferedDataRecord. This is related to CodePlex issue 1502.
Extracting BufferedDataRecordBase base class from BufferedDataRecord. This is related to CodePlex issue 1502.
Adding a buffered data reader variant that uses the expected shape information to call the strongly-typed methods.

Work item: 1502
Renaming BufferedDataRecordBase to BufferedDataRecord
Merge branch 'release-6.0.0'