/// <summary> /// Adds a computed index /// </summary> /// <param name="expressions"></param> /// <param name="configure"></param> public void Index(IReadOnlyCollection <Expression <Func <T, object> > > expressions, Action <ComputedIndex> configure = null) { var members = expressions .Select(FindMembers.Determine).ToArray(); var index = new ComputedIndex(this, members); configure?.Invoke(index); Indexes.Add(index); }
public DocumentMappingExpression <T> Index(Expression <Func <T, object> > expression, Action <ComputedIndex> configure = null) { var visitor = new FindMembers(); visitor.Visit(expression); alter = mapping => { var index = new ComputedIndex(mapping, visitor.Members.ToArray()); configure?.Invoke(index); mapping.Indexes.Add(index); }; return(this); }