Ejemplo n.º 1
0
            public DocumentMappingExpression <T> UniqueIndex(UniqueIndexType indexType, string indexName,
                                                             TenancyScope tenancyScope = TenancyScope.Global, params Expression <Func <T, object> >[] expressions)
            {
                _builder.Alter = m => m.UniqueIndex(indexType, indexName, tenancyScope, expressions);

                return(this);
            }
Ejemplo n.º 2
0
        public void UniqueIndex(UniqueIndexType indexType, string indexName,
                                TenancyScope tenancyScope = TenancyScope.Global, params Expression <Func <T, object> >[] expressions)
        {
            var members = expressions
                          .Select(e =>
            {
                var visitor = new FindMembers();
                visitor.Visit(e);
                return(visitor.Members.ToArray());
            })
                          .ToArray();

            if (members.Length == 0)
            {
                throw new InvalidOperationException(
                          $"Unique index on {typeof(T)} requires at least one property/field");
            }

            AddUniqueIndex(
                members,
                indexType,
                indexName,
                IndexMethod.btree,
                tenancyScope);
        }
Ejemplo n.º 3
0
 public void UniqueIndex(UniqueIndexType indexType, string indexName,
                         TenancyScope tenancyScope = TenancyScope.Global, params Expression <Func <T, object> >[] expressions)
 {
     AddUniqueIndex(
         expressions
         .Select(FindMembers.Determine)
         .ToArray(),
         indexType,
         indexName,
         IndexMethod.btree,
         tenancyScope);
 }