예제 #1
0
        /// <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);
        }
예제 #2
0
            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);
            }