从 Automapper TypeConverter 内部访问数据库是否合理?

Is it reasonable to access the DB from inside an Automapper TypeConverter?

所以我在我正在处理的代码库中遇到了一些代码。

我们正在使用 Automapper 将域对象(Poco/dto 的)映射到 Entity Framework 模型。这一切都很好。

然而,在我们拥有的一些映射器中,我们正在使用 ITypeConverter 上的实现,它是用我们的 EF dbcontext 实例实例化的。用于查找给定字符串的 ID 之类的东西。

我觉得这有点代码味(但显然我的同事认为它很酷)。

在 Automapper TypeConverter 中访问数据库是好还是坏?

我发现了一个为什么这是个坏主意的原因。

如果一个映射通过数据库进行调用,那么您将不得不以任何一种方式进行调用。

但是,如果映射器需要映射对象集合,则映射器将进行 N 次数据库调用。这可能会作为单个调用执行。