Esempio n. 1
0
        public async Task <IList <TEntity> > LoadPersisted <TEntity>(KeyValue[] keys)
            where TEntity : class
        {
            IEntityServices <TEntity>          entityServices = _entityServicesFactory.GetEntityServices <TEntity>();
            Expression <Func <TEntity, bool> > keyFilter      = entityServices.CreateFilterByKeysExpression(keys);

            IQueryable <TEntity> query = GetBaseQuery <TEntity>().AsTracking().Where(keyFilter);

            query = (IQueryable <TEntity>)_eventManager.OnRootLoading(query, _dbContext).Queryable;

            IList <TEntity> persisted = await query.ToListAsync();

            if (persisted != null)
            {
                for (int i = 0; i < persisted.Count; i++)
                {
                    persisted[i] = (TEntity)_eventManager.OnRootLoaded(persisted[i], _dbContext).Root;
                }
            }

            return(persisted);
        }