Esempio n. 1
0
        public virtual async Task <TEntity> LoadAsync <TEntity>(params object[] keyValues)
            where TEntity : class
        {
            IEntityServices <TEntity>          entityServices = _entityServicesFactory.GetEntityServices <TEntity>();
            Expression <Func <TEntity, bool> > keyFilter      = entityServices.CreateFindByKeyExpression(keyValues);

            IQueryable <TEntity> query = GetBaseQuery <TEntity>().AsNoTracking();

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

            TEntity entity = await query.SingleOrDefaultAsync(keyFilter);

            if (entity != null)
            {
                _eventManager.OnRootLoaded(entity, _dbContext);
            }

            return(entity);
        }