Я знаю, что этот ответ уже есть, но не могу приблизиться к решению моего дела. Надеюсь, кто-нибудь может помочь.
У меня есть следующий метод asyn c
public async Task<Car> GetCarAsync(int carId)
{
// ERROR HAPPENS HERE
return await _context
.Cars.FirstOrDefaultAsync(s => s.CarId == carId);
}
И следующий тест NUnit с использованием Moq
[Test]
public async Task GetCarAsyncTest()
{
// Arrange
var mockContext = new Mock<IDbContext>();
var cars = new List<Car>()
{
new Car()
{
CarId = 9999,
Text = "Car1"
}
};
mockContext.Setup(x => x.Cars).Returns(cars.ToDbSet());
var controller = new CarController(
new CarRepository(mockContext.Object),
new CarModelBuilder(),
new DateTimeProvider(),
new CarProvider(
new CarRepository(mockContext.Object)),
new CarCategoryRepository(mockContext.Object));
var config = new HttpConfiguration();
WebApiConfig.RegisterRoutes(config);
controller.WithMockRequest(config);
// Act
var car = await controller.GetCarAsync(9999);
// Assert
}
Метод контроллера также асин c тот, который только вызывает вышеупомянутый asyn c метод. Ошибка следующая:
The provider for the source IQueryable doesn't implement IDbAsyncQueryProvider. Only providers that implement IDbAsyncQueryProvider can be used for Entity Framework asynchronous operations
И происходит по первому GetCarAsync
методу выше