Ejemplo n.º 1
0
        /// <summary>
        /// Get the {@link CollectionLoadContext} associated with the given
        /// {@link ResultSet}, creating one if needed.
        /// </summary>
        /// <param name="resultSet">The result set for which to retrieve the context. </param>
        /// <returns> The processing context. </returns>
        public CollectionLoadContext GetCollectionLoadContext(DbDataReader resultSet)
        {
            CollectionLoadContext context = null;

            if (collectionLoadContexts == null)
            {
                collectionLoadContexts = IdentityMap.Instantiate(8);
            }
            else
            {
                context = (CollectionLoadContext)collectionLoadContexts[resultSet];
            }
            if (context == null)
            {
                if (log.IsDebugEnabled())
                {
                    // Do not log the resultSet as-is, it is an IEnumerable which may get enumerated by loggers.
                    // (Serilog does that.) See #1667.
                    log.Debug("constructing collection load context for result set [{0}]", resultSet.GetType());
                }
                context = new CollectionLoadContext(this, resultSet);
                collectionLoadContexts[resultSet] = context;
            }
            return(context);
        }
Ejemplo n.º 2
0
    protected override IDictionary GetMergeMap(object anything)
    {
        var cache  = (EventCache)anything;
        var result = IdentityMap.Instantiate(cache.Count);

        foreach (DictionaryEntry entry in cache)
        {
            result[entry.Value] = entry.Key;
        }
        return(result);
    }
Ejemplo n.º 3
0
 public virtual Task OnPersistAsync(PersistEvent @event, CancellationToken cancellationToken)
 {
     if (cancellationToken.IsCancellationRequested)
     {
         return(Task.FromCanceled <object>(cancellationToken));
     }
     try
     {
         return(OnPersistAsync(@event, IdentityMap.Instantiate(10), cancellationToken));
     }
     catch (Exception ex)
     {
         return(Task.FromException <object>(ex));
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Get the {@link CollectionLoadContext} associated with the given
        /// {@link ResultSet}, creating one if needed.
        /// </summary>
        /// <param name="resultSet">The result set for which to retrieve the context. </param>
        /// <returns> The processing context. </returns>
        public CollectionLoadContext GetCollectionLoadContext(DbDataReader resultSet)
        {
            CollectionLoadContext context = null;

            if (collectionLoadContexts == null)
            {
                collectionLoadContexts = IdentityMap.Instantiate(8);
            }
            else
            {
                context = (CollectionLoadContext)collectionLoadContexts[resultSet];
            }
            if (context == null)
            {
                if (log.IsDebugEnabled())
                {
                    log.Debug("constructing collection load context for result set [{0}]", resultSet);
                }
                context = new CollectionLoadContext(this, resultSet);
                collectionLoadContexts[resultSet] = context;
            }
            return(context);
        }
Ejemplo n.º 5
0
 protected virtual IDictionary GetIdentityMap()
 {
     return(IdentityMap.Instantiate(10));
 }
 public virtual void OnPersist(PersistEvent @event)
 {
     OnPersist(@event, IdentityMap.Instantiate(10));
 }
Ejemplo n.º 7
0
 public virtual void OnRefresh(RefreshEvent @event)
 {
     OnRefresh(@event, IdentityMap.Instantiate(10));
 }
 public virtual void OnMerge(MergeEvent @event)
 {
     OnMerge(@event, IdentityMap.Instantiate(10));
 }