public static object GetRelationshipEntryKey1(ObjectStateEntry entry)
        {
            var relationshipEntryType = typeof(ObjectStateEntry).Assembly.GetType("System.Data.Entity.Core.Objects.RelationshipEntry");

            if (RelationshipEntryKey1 == null)
            {
                // Parameter
                var parameter = Expression.Parameter(typeof(ObjectStateEntry));

                // Convert
                var parameterConvert = Expression.Convert(parameter, relationshipEntryType);

                var key0Property = entry.GetType().GetProperty("Key1", BindingFlags.NonPublic | BindingFlags.Instance);
                var getKey0      = Expression.Property(parameterConvert, key0Property);

                RelationshipEntryKey1 = Expression.Lambda <Func <ObjectStateEntry, object> >(getKey0, parameter).Compile();
            }

            return(RelationshipEntryKey1(entry));
        }