private bool HasFakePropertyValue()

in src/Epam.GraphQL/Configuration/Implementations/Relations/Relation.cs [237:266]


        private bool HasFakePropertyValue(TChildEntity child)
        {
            if (_childNavigationProperty != null && _navigationProperty == null && _childProperty.IsProperty())
            {
                if (_parentLoader is not IMutableLoader<TExecutionContext> mutableLoader)
                {
                    if (_parentLoader is IIdentifiableLoader)
                    {
                        return false;
                    }

                    throw new InvalidOperationException($"Cannot check fakeness of property value. IsFakePropertyValue predicate wasn't provided for Relation: {this}");
                }

                var childPropertyValue = ChildPropertyGetter(child);
                if (TypeExtensions.IsNullable(typeof(TChildProperty)) && childPropertyValue == null)
                {
                    return false;
                }

                return mutableLoader.IsFakeId(childPropertyValue);
            }

            if (_navigationProperty != null && _childNavigationProperty != null && IsChildPropertyId)
            {
                throw new InvalidOperationException($"Cannot check fakeness of property value. Both navigationProperty and reverseNavigationProperty were provided for identity property {_childProperty} of type {typeof(TChildEntity)}. You must provide either navigationProperty or reverseNavigationProperty: {this}");
            }

            return false;
        }