public static AssociationType AddAssociationType( this EdmModel model, string name, EntityType sourceEntityType, RelationshipMultiplicity sourceAssociationEndKind, EntityType targetEntityType, RelationshipMultiplicity targetAssociationEndKind, string modelNamespace = null) { DebugCheck.NotNull(model); DebugCheck.NotEmpty(name); DebugCheck.NotNull(sourceEntityType); DebugCheck.NotNull(targetEntityType); var associationType = new AssociationType( name, modelNamespace ?? DefaultModelNamespace, false, DataSpace.CSpace) { SourceEnd = new AssociationEndMember( name + "_Source", sourceEntityType.GetReferenceType(), sourceAssociationEndKind), TargetEnd = new AssociationEndMember( name + "_Target", targetEntityType.GetReferenceType(), targetAssociationEndKind) }; model.AddAssociationType(associationType); return associationType; }
public static EdmAssociationType AddAssociationType( this EdmModel model, string name, EdmEntityType sourceEntityType, EdmAssociationEndKind sourceAssociationEndKind, EdmEntityType targetEntityType, EdmAssociationEndKind targetAssociationEndKind) { //Contract.Requires(model != null); //Contract.Requires(!string.IsNullOrWhiteSpace(name)); //Contract.Requires(sourceEntityType != null); //Contract.Requires(targetEntityType != null); Contract.Assert(model.Namespaces.Count == 1); var associationType = new EdmAssociationType().Initialize(); associationType.Name = name; associationType.SourceEnd.Name = name + "_Source"; associationType.SourceEnd.EntityType = sourceEntityType; associationType.SourceEnd.EndKind = sourceAssociationEndKind; associationType.TargetEnd.Name = name + "_Target"; associationType.TargetEnd.EntityType = targetEntityType; associationType.TargetEnd.EndKind = targetAssociationEndKind; model.AddAssociationType(associationType); return associationType; }