예제 #1
0
        public override TEntity?GetById(params object[] ids)
        {
            if (ids == null)
            {
                throw new ArgumentNullException(nameof(ids));
            }

            return(_efDataProviderSpecificMethodsProvider.ApplyWhereByKeys(GetAll(), ids)
                   .SingleOrDefault());
        }
예제 #2
0
        private async Task <IQueryable <TDto> > GetByIdQuery(TKey key, CancellationToken cancellationToken)
        {
            IQueryable <TDto> baseQuery = await GetAll(cancellationToken);

            IDataProviderSpecificMethodsProvider dataProviderSpecificMethodsProvider = null;

            if (DataProviderSpecificMethodsProviders != null)
            {
                dataProviderSpecificMethodsProvider = DataProviderSpecificMethodsProviders.FirstOrDefault(asyncQueryableExecuter => asyncQueryableExecuter.SupportsQueryable <TDto>(baseQuery));
            }

            if (dataProviderSpecificMethodsProvider == null)
            {
                dataProviderSpecificMethodsProvider = DefaultDataProviderSpecificMethodsProvider.Current;
            }

            baseQuery = dataProviderSpecificMethodsProvider.ApplyWhereByKeys(baseQuery, key);

            return(baseQuery);
        }