Получение AutoMapper для отображения подробных сообщений об ошибках - PullRequest
0 голосов
/ 15 января 2019

У меня относительно большое приложение .NET Core. Я использую Entity Framework и AutoMapper для преобразования моих моделей баз данных в модели приложений. Для этого я использую .ProjectTo<T>(), поэтому мне не нужно много делать .Include().

Я недавно модернизировал многие модели, поэтому приложение использует модели приложений вместо моделей баз данных. Есть несколько причин, но это не имеет значения. В процессе изменения примерно 30 или 40 файлов мне удалось наткнуться на ошибку, которую я пытался исправить в течение нескольких часов.

Проблема возникает из-за того, что я использую .ProjectTo<T>() на модели, которая имеет кучу других моделей, которые также имеют много моделей. Позвольте мне сказать это так: если бы я использовал .Include(), мне понадобилось бы по крайней мере 10 из них, чтобы получить тот же результат, что и .ProjectTo<T>().

Вот пример того, как я его использую:

public class CarController : Controller {
    private readonly ICarContext _dbContext;

    public CarController(ICarController dbContext) {
        _dbContext = dbContext;
    }

    public async Task<CarModel> GetCar(Guid id) {
        return await _dbContext
            .Cars // of type Car
            .Where(x => x.Id == id)
            .ProjectTo<CarModel> // project from Car to CarModel
            .FirstOrDefault();
    }
}

Я получаю ошибку:

System.ArgumentException: типы аргументов не совпадают

AutoMapper не скажет мне точно, где моя проблема, поэтому я могу только просмотреть все 30-40 файлов и найти проблему.

Можно ли сказать AutoMapper отображать подробные ошибки, поэтому я точно знаю, где проблема преобразования из <Car> в <CarModel>?

...