Exemplo n.º 1
0
            /// <summary>
            /// Make sure the other metadata instance generates the same property
            /// (otherwise, we get incorrect behavior where multiple nav props return
            /// the same type)
            /// </summary>
            protected override bool IsStructurallyEquivalent(InitializerMetadata other)
            {
                // caller must ensure the type matches
                EntityCollectionInitializerMetadata otherInitializer = (EntityCollectionInitializerMetadata)other;

                return(this._navigationProperty.Equals(otherInitializer._navigationProperty));
            }
Exemplo n.º 2
0
            protected override bool IsStructurallyEquivalent(InitializerMetadata other)
            {
                // caller must ensure the type matches
                ProjectionNewMetadata otherProjection = (ProjectionNewMetadata)other;

                if (this._newExpression.Members == null && otherProjection._newExpression.Members == null)
                {
                    return(true);
                }

                if (this._newExpression.Members == null || otherProjection._newExpression.Members == null)
                {
                    return(false);
                }

                if (this._newExpression.Members.Count != otherProjection._newExpression.Members.Count)
                {
                    return(false);
                }

                for (int i = 0; i < this._newExpression.Members.Count; i++)
                {
                    MemberInfo thisMember  = this._newExpression.Members[i];
                    MemberInfo otherMember = otherProjection._newExpression.Members[i];
                    if (!thisMember.Equals(otherMember))
                    {
                        return(false);
                    }
                }

                return(true);
            }
Exemplo n.º 3
0
            protected override bool IsStructurallyEquivalent(InitializerMetadata other)
            {
                // caller must ensure the type matches
                ProjectionInitializerMetadata otherProjection = (ProjectionInitializerMetadata)other;

                if (this._initExpression.Bindings.Count != otherProjection._initExpression.Bindings.Count)
                {
                    return(false);
                }

                for (int i = 0; i < this._initExpression.Bindings.Count; i++)
                {
                    MemberBinding thisBinding  = this._initExpression.Bindings[i];
                    MemberBinding otherBinding = otherProjection._initExpression.Bindings[i];
                    if (!thisBinding.Member.Equals(otherBinding.Member))
                    {
                        return(false);
                    }
                }

                return(true);
            }