public bool EmitMember(
            TypeBuilder typeBuilder,
            EdmMember member,
            PropertyBuilder propertyBuilder,
            PropertyInfo baseProperty,
            BaseProxyImplementor baseImplementor)
        {
            if (this._scalarMembers.Contains(member))
            {
                bool isKeyMember = this._ospaceEntityType.KeyMembers.Contains(member.Identity);
                this.EmitScalarSetter(typeBuilder, propertyBuilder, baseProperty, isKeyMember);
                return(true);
            }
            if (!this._relationshipMembers.Contains(member))
            {
                return(false);
            }
            NavigationProperty navProperty = member as NavigationProperty;

            if (navProperty.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many)
            {
                this.EmitCollectionProperty(typeBuilder, propertyBuilder, baseProperty, navProperty);
            }
            else
            {
                this.EmitReferenceProperty(typeBuilder, propertyBuilder, baseProperty, navProperty);
            }
            baseImplementor.AddBasePropertySetter(baseProperty);
            return(true);
        }
Ejemplo n.º 2
0
 public bool EmitMember(
     TypeBuilder typeBuilder, EdmMember member, PropertyBuilder propertyBuilder, PropertyInfo baseProperty,
     BaseProxyImplementor baseImplementor)
 {
     if (_scalarMembers.Contains(member))
     {
         var isKeyMember = _ospaceEntityType.KeyMembers.Contains(member.Identity);
         EmitScalarSetter(typeBuilder, propertyBuilder, baseProperty, isKeyMember);
         return(true);
     }
     else if (_relationshipMembers.Contains(member))
     {
         Debug.Assert(member != null, "member is null");
         Debug.Assert(member.BuiltInTypeKind == BuiltInTypeKind.NavigationProperty);
         var navProperty = member as NavigationProperty;
         if (navProperty.ToEndMember.RelationshipMultiplicity
             == RelationshipMultiplicity.Many)
         {
             EmitCollectionProperty(typeBuilder, propertyBuilder, baseProperty, navProperty);
         }
         else
         {
             EmitReferenceProperty(typeBuilder, propertyBuilder, baseProperty, navProperty);
         }
         baseImplementor.AddBasePropertySetter(baseProperty);
         return(true);
     }
     return(false);
 }
 public bool EmitMember(
     TypeBuilder typeBuilder, EdmMember member, PropertyBuilder propertyBuilder, PropertyInfo baseProperty,
     BaseProxyImplementor baseImplementor)
 {
     if (_scalarMembers.Contains(member))
     {
         var isKeyMember = _ospaceEntityType.KeyMembers.Contains(member.Identity);
         EmitScalarSetter(typeBuilder, propertyBuilder, baseProperty, isKeyMember);
         return true;
     }
     else if (_relationshipMembers.Contains(member))
     {
         Debug.Assert(member != null, "member is null");
         Debug.Assert(member.BuiltInTypeKind == BuiltInTypeKind.NavigationProperty);
         var navProperty = member as NavigationProperty;
         if (navProperty.ToEndMember.RelationshipMultiplicity
             == RelationshipMultiplicity.Many)
         {
             EmitCollectionProperty(typeBuilder, propertyBuilder, baseProperty, navProperty);
         }
         else
         {
             EmitReferenceProperty(typeBuilder, propertyBuilder, baseProperty, navProperty);
         }
         baseImplementor.AddBasePropertySetter(baseProperty);
         return true;
     }
     return false;
 }