/// <summary> /// Removes the entity set from the model. /// </summary> /// <param name="name">The name of the entity set to be removed.</param> /// <returns><c>true</c> if the entity set is present in the model and <c>false</c> otherwise.</returns> public virtual bool RemoveEntitySet(string name) { if (name == null) { throw Error.ArgumentNull("name"); } if (this._navigationSources.ContainsKey(name)) { EntitySetConfiguration entitySet = this._navigationSources[name] as EntitySetConfiguration; if (entitySet != null) { return(this._navigationSources.Remove(name)); } } return(false); }
/// <summary> /// Registers an entity set as a part of the model and returns an object that can be used to configure the entity set. /// This method can be called multiple times for the same type to perform multiple lines of configuration. /// </summary> /// <param name="name">The name of the entity set.</param> /// <param name="entityType">The type to be registered or configured.</param> /// <returns>The configuration object for the specified entity set.</returns> public virtual EntitySetConfiguration AddEntitySet(string name, EntityTypeConfiguration entityType) { if (String.IsNullOrWhiteSpace(name)) { throw Error.ArgumentNullOrEmpty("name"); } if (entityType == null) { throw Error.ArgumentNull("entityType"); } if (name.Contains(".")) { throw Error.NotSupported(SRResources.InvalidEntitySetName, name); } EntitySetConfiguration entitySet = null; if (this._navigationSources.ContainsKey(name)) { entitySet = this._navigationSources[name] as EntitySetConfiguration; if (entitySet == null) { throw Error.Argument("name", SRResources.EntitySetNameAlreadyConfiguredAsSingleton, name); } if (entitySet.EntityType != entityType) { throw Error.Argument("entityType", SRResources.EntitySetAlreadyConfiguredDifferentEntityType, entitySet.Name, entitySet.EntityType.Name); } } else { entitySet = new EntitySetConfiguration(this, entityType, name); this._navigationSources[name] = entitySet; } return(entitySet); }
private static void AddExpandRestrictionsAnnotation(this EdmModel model, IEdmEntitySet target, EntitySetConfiguration entitySetConfiguration, EdmTypeMap edmTypeMap) { EntityTypeConfiguration entityTypeConfig = entitySetConfiguration.EntityType; IEnumerable <PropertyConfiguration> nonExpandableProperties = entityTypeConfig.Properties.Where(property => property.NotExpandable); IList <IEdmNavigationProperty> properties = new List <IEdmNavigationProperty>(); foreach (PropertyConfiguration property in nonExpandableProperties) { IEdmProperty value; if (edmTypeMap.EdmProperties.TryGetValue(property.PropertyInfo, out value)) { if (value != null && value.PropertyKind == EdmPropertyKind.Navigation) { properties.Add((IEdmNavigationProperty)value); } } } if (properties.Any()) { model.SetExpandRestrictionsAnnotation(target, true, properties); } }
private static void AddSortRestrictionsAnnotation(this EdmModel model, IEdmEntitySet target, EntitySetConfiguration entitySetConfiguration, EdmTypeMap edmTypeMap) { EntityTypeConfiguration entityTypeConfig = entitySetConfiguration.EntityType; IEnumerable <PropertyConfiguration> nonSortableProperties = entityTypeConfig.Properties.Where(property => property.Unsortable); IList <IEdmProperty> properties = new List <IEdmProperty>(); foreach (PropertyConfiguration property in nonSortableProperties) { IEdmProperty value; if (edmTypeMap.EdmProperties.TryGetValue(property.PropertyInfo, out value)) { if (value != null) { properties.Add(value); } } } if (properties.Any()) { model.SetSortRestrictionsAnnotation(target, true, null, null, properties); } }
internal EntitySetConfiguration(ODataModelBuilder modelBuilder, EntitySetConfiguration configuration) : base(modelBuilder, configuration) { }
private static EdmEntitySet AddEntitySet(this EdmEntityContainer container, EntitySetConfiguration entitySet, IDictionary <Type, IEdmType> edmTypeMap) { return(container.AddEntitySet(entitySet.Name, (IEdmEntityType)edmTypeMap[entitySet.EntityType.ClrType])); }