AutoMapper自定义类型转换器依赖项

时间:2010-01-07 21:17:46

标签: asp.net-mvc automapper

我正在尝试实现Automapper将ViewModel映射到Entity,其中Entity的一个属性也是一个Entity。

我希望我的转换器使用NHibernate的ISession.Load<>加载它的方法。

所以问题是将ISession注入我的ITypeConverter实现的最佳方法是什么?另外要记住的一点是,注入的ISession将被处理掉,所以每当映射需要发生时我需要注入一个新的ISession?

2 个答案:

答案 0 :(得分:1)

我们在我们的系统中执行此操作,并使用Guid->实体类型转换器等内容。但是,我们根据HttpContext确定ISessions的范围,因此每个ITypeConverter都会注入一个新的ISession not 。但是,AutoMapper会在每次需要时实例化一个新的ITypeConverter实例。

但是,来自不同ISession实例的两个实体将陷入困境。只需确保每个HttpContext共享一个ISession实例,然后就可以了。

答案 1 :(得分:0)

我不知道nHibernate对不起,似乎没有人想回答这个问题......

我要解决这个问题的方法是编写我自己的Custom Model Binder。然后,可以将我的ViewModel映射到我的实体。

您还可以访问HttpRequest对象,这样您就可以将所有文本字段输出并将它们映射到您的实体。

我希望这有帮助,即使它不是特定于你的问题。