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); }
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); }
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); }