使AutoMapper显示详细的错误消息

时间:2019-01-15 13:16:21

标签: entity-framework .net-core automapper ef-core-2.1

我有一个相对较大的.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>的转换在哪里?

0 个答案:

没有答案