Beispiel #1
0
 private InternalIndexBuilder Index(IReadOnlyList <Property> properties, ConfigurationSource configurationSource)
 {
     return(_indexBuilders.Value.GetOrAdd(
                () => Metadata.TryGetIndex(properties),
                () => Metadata.AddIndex(properties),
                index => new InternalIndexBuilder(index, ModelBuilder),
                configurationSource));
 }
 private InternalIndexBuilder Index(IReadOnlyList <Property> properties, ConfigurationSource configurationSource)
 => properties == null
     ? null
     : _indexBuilders.Value.GetOrAdd(
     () => Metadata.FindIndex(properties),
     () => Metadata.AddIndex(properties),
     index => new InternalIndexBuilder(index, ModelBuilder),
     configurationSource);
                public IndexBuilder Index([NotNull] params string[] propertyNames)
                {
                    Check.NotNull(propertyNames, "propertyNames");

                    var properties = propertyNames.Select(n => Metadata.GetProperty(n)).ToArray();
                    var index      = Metadata.AddIndex(properties);

                    return(new IndexBuilder(index, ModelBuilder));
                }
                public IndexBuilder Index([NotNull] Expression <Func <TEntity, object> > indexExpression)
                {
                    Check.NotNull(indexExpression, "indexExpression");

                    var properties
                        = indexExpression.GetPropertyAccessList()
                          .Select(pi => Metadata.TryGetProperty(pi.Name) ?? Metadata.AddProperty(pi))
                          .ToArray();
                    var index = Metadata.AddIndex(properties);

                    return(new IndexBuilder(index, ModelBuilder));
                }