我注意到很多人建议为每个模型创建一个数据映射器,但这可能非常耗时。为什么创建检测对象(模型)属性(变量)并将它们与数据库字段匹配的通用数据映射器是否有益?
答案 0 :(得分:1)
"为什么创建通用数据映射器并不是有益的"
绝对有好处(例如重复代码较少),但如果您要直接使用它,则存在一些潜在的缺点。一些潜在的陷阱(脱离我的头顶)......
给出这个例子:IUser user = DataMapper.Map(HashTable userRecord);
我自己一直沿着这条路走下去,最终结果是使用非通用映射器使用通用映射器和其他对象构建了大量对象,最终导致开发人员感到非常困惑(我应该将mapper用于这个对象吗?),以及一些可怕的"聪明的"在映射方法中。
您绝对可以使用通用数据映射器,但您可能需要考虑将其用作抽象基类并在其上编写专门的映射器以避免使用"特殊"当一个对象需要以某种方式改变映射器不支持时,避免一堆深层的,有潜在危险的重构。
[请注意,我不认为自己(甚至是远程)是数据/对象映射环境中的专家,因此请采取一些我建议的任何内容]