private AssociationEnd CreateStorageAssociationEnd(IEntity entity, string role, LinqToEdmx.Model.Storage.Association assocication, bool isCascadeDelete)
        {
            //  <End Role="Category" Type="PetShopModel1.Store.Category" Multiplicity="1">
            //     <OnDelete Action="Cascade" />
            //  </End>
            //  <End Role="Product" Type="PetShopModel1.Store.Product" Multiplicity="*" />
            var end = new AssociationEnd() {
                Role = role,
                Type = String.Concat(StorageSchema.Namespace, ".", entity.EntityKeyName)
            };

            if (isCascadeDelete) {
                end.OnDelete.Add(new OnAction() {
                    Action = EdmxConstants.OnDeleteActionCascade
                });
            }

            assocication.Ends.Add(end);

            return end;
        }
 private static void UpdateStorageAssociationEndMultiplicity(IAssociation association, AssociationEnd principalEnd, AssociationEnd dependentEnd)
 {
     switch (association.AssociationType) {
         case AssociationType.OneToMany:
             principalEnd.Multiplicity = MultiplicityConstants.One;
             dependentEnd.Multiplicity = MultiplicityConstants.Many;
             break;
         case AssociationType.OneToOne:
             principalEnd.Multiplicity = MultiplicityConstants.One;
             dependentEnd.Multiplicity = MultiplicityConstants.One;
             break;
         case AssociationType.OneToZeroOrOne:
             principalEnd.Multiplicity = MultiplicityConstants.One;
             dependentEnd.Multiplicity = MultiplicityConstants.ZeroToOne;
             break;
         case AssociationType.ZeroOrOneToMany:
         case AssociationType.ManyToZeroOrOne:
             principalEnd.Multiplicity = MultiplicityConstants.ZeroToOne;
             dependentEnd.Multiplicity = MultiplicityConstants.Many;
             break;
         default:
             principalEnd.Multiplicity = MultiplicityConstants.One;
             dependentEnd.Multiplicity = MultiplicityConstants.Many;
             break;
     }
 }