예제 #1
0
        internal override IndexSearcher AsSearcher(TxDataHolder holder, QueryContext context)
        {
            if (context != null && context.TradeCorrectnessForSpeed)
            {
                return(null);
            }
            TxData fullTxData = ToFullTxData();

            holder.Set(fullTxData);
            return(fullTxData.AsSearcher(holder, context));
        }
예제 #2
0
        internal override ICollection <EntityId> Query(TxDataHolder holder, Query query, QueryContext contextOrNull)
        {
            if (contextOrNull != null && contextOrNull.TradeCorrectnessForSpeed)
            {
                return(Collections.emptyList());
            }

            TxData fullTxData = ToFullTxData();

            holder.Set(fullTxData);
            return(fullTxData.Query(holder, query, contextOrNull));
        }
예제 #3
0
        internal override void Remove(TxDataHolder holder, EntityId entityId, string key, object value)
        {
            if (_data == null)
            {
                return;
            }

            if (string.ReferenceEquals(key, null) || value == null)
            {
                TxData fullData = ToFullTxData();
                fullData.Remove(holder, entityId, key, value);
                holder.Set(fullData);
            }
            else
            {
                ICollection <EntityId> ids = IdCollection(key, value, false);
                if (ids != null)
                {
                    ids.remove(entityId);
                }
            }
        }