2

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

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

所以问题是将 ISession 注入我的 ITypeConverter 实现的最佳方法是什么?还有一件事要记住的是,被注入的 ISession 将被处理掉,所以每次需要进行映射时我都需要注入一个新的 ISession 吗?

4

2 回答 2

1

我们在我们的系统中执行此操作,并且有诸如 Guid->Entity 类型转换器之类的东西。但是,我们将 ISession 限定为每个 HttpContext,因此不会为每个 ITypeConverter 注入新的 ISession。但是,AutoMapper 每次需要时都会实例化一个新的 ITypeConverter 实例。

但是来自不同 ISession 实例的两个实体会导致麻烦。只需确保每个 HttpContext 共享一个 ISession 实例,您就可以设置好。

于 2010-01-08T03:21:13.397 回答
0

我不知道 nHibernate 抱歉,似乎没有人想回答这个问题,所以......

我解决这个问题的方法可能是编写我自己的自定义模型绑定器。然后可以将我的 ViewModel 映射到我的实体。

您还可以访问 HttpRequest 对象,以便获取所有文本字段并将它们映射到您的实体。

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

于 2010-01-08T01:57:50.707 回答