public async Task DeleteAsyncWithWhereClauseSuccessTestAsync()
        {
            //Given
            using (var efCoreAsyncUnitOfWork = new EfCoreAsyncUnitOfWork <SharedLibraryContext>(_databaseFactory))
            {
                var repository    = new EfCoreAsyncAccountRepository(_databaseFactory);
                var listOfItems   = AccountEntityHelper.CreateEfCoreTestAccounts(3);
                var originalItems = await repository.GetAllAsync().ConfigureAwait(true);

                await repository.AddRangeAsync(listOfItems).ConfigureAwait(true);

                var allNewItems = await repository.GetAllAsync().ConfigureAwait(true);

                var newItems   = allNewItems as IList <Account> ?? allNewItems.ToList();
                var itemsAdded = newItems.Except(originalItems).ToList();

                //When
                var idsToDeleteAsync = itemsAdded.Select(x => x.AccountId);
                await repository.DeleteAsync(x => idsToDeleteAsync.Contains(x.AccountId)).ConfigureAwait(true);

                await efCoreAsyncUnitOfWork.CommitAsync().ConfigureAwait(true);

                var allItems = await repository.GetAllAsync().ConfigureAwait(true);

                //Then
                Assert.AreEqual(0, allItems.Except(newItems).Count(), "The items have not been DeleteAsyncd.");
            }
        }
        public async Task DeleteAsyncItemSuccessTestAsync()
        {
            //Given
            using (var efCoreAsyncUnitOfWork = new EfCoreAsyncUnitOfWork <SharedLibraryContext>(_databaseFactory))
            {
                //Given
                var repository  = new EfCoreAsyncAccountRepository(_databaseFactory);
                var testAccount = await repository.SaveAsync(AccountEntityHelper.CreateEfTestAccount()).ConfigureAwait(true);

                await efCoreAsyncUnitOfWork.CommitAsync().ConfigureAwait(true);

                //When
                await repository.DeleteAsync(testAccount).ConfigureAwait(true);

                await efCoreAsyncUnitOfWork.CommitAsync().ConfigureAwait(true);

                //Then
                var retrievedAccount = await repository.GetByIdAsync(testAccount.AccountId).ConfigureAwait(true);

                Assert.IsNull(retrievedAccount, "The account was not DeleteAsyncd.");
            }
        }