2013-10-10 38 views
0

我有一个映射类,将DTO对象映射到实体模型,反之亦然。这些关联目前存储在字典中,并且所有关联都会在运行时添加到字典中 - 由静态构造函数调用,该构造函数调用一个函数,该函数执行大量字典添加操作!看看我要去哪里?我不知道,我知道。有没有更清晰的方式来定义C#中的映射定义?

从我的角度看,我无法看到如何在某处手动定义这些关联,但有没有更好的方法来定义关联,然后将它们加载到字典中,只需添加一个额外的简单循环_dictionary.Add(dtoType,modelType);在每个新关联的构造函数中。另外,我想在程序中保留这些关联定义,而不是在外部文本/ xml文件中。

+0

有数百种解决方案,这取决于您的需求。例如,您可以通过反射来循环类型,并通过属性指定关系。或者你重写那些你不需要这种映射信息的东西...... –

+0

@StefanSteinegger如何避免不需要映射信息 - 如果这就是你的意思(在最后一句中)?然而,我确实考虑过属性,但DTO不知道实体,因为它们在单独的程序集中,我并不想将实体框架类与DTO结合起来,因为我认为这会使一切变得杂乱无章 - 你怎么看?感谢您的回复 – Sam

+0

@StefanSteinegger - 只需添加,我的需求基本上就是知道DTO对象应该与什么实体对象进行映射。 :) – Sam

回答

0

也许这个工具可以为你工作:

http://automapper.org/

我们用它来DTO属性的实体属性映射。它按照惯例和配置工作。

+0

如果我错了,请纠正我,但使用Automapper时,您仍然必须定义用什么实体来映射哪个DTO?我正在寻找的是一种在干净的庄园中定义这些关联的方法...就我所知,Automapper不提供这样的解决方案吗?谢谢 – Sam

+0

不,你说得对,它并不能解决你的主要问题。它只会避免更多工作来配置实际的映射。 – ilmatte

+0

事实上,我确实使用Automapper来实际映射属性 - 我的一小部分希望我错过了一个功能,它可以解决我的问题,但是感谢输入无论如何:) – Sam

相关问题