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)); }