/// <summary> /// Adds a property backed up by an indexer to this entity type. /// </summary> /// <param name="entityType"> The entity type to add the property to. </param> /// <param name="name"> The name of the property to add. </param> /// <param name="propertyType"> The type of value the property will hold. </param> /// <returns> The newly created property. </returns> public static IMutableProperty AddIndexerProperty( [NotNull] this IMutableEntityType entityType, [NotNull] string name, [NotNull] Type propertyType) { Check.NotNull(entityType, nameof(entityType)); var indexerPropertyInfo = entityType.FindIndexerPropertyInfo(); if (indexerPropertyInfo == null) { throw new InvalidOperationException( CoreStrings.NonIndexerEntityType(name, entityType.DisplayName(), typeof(string).ShortDisplayName())); } return(entityType.AddProperty(name, propertyType, indexerPropertyInfo)); }