如何处理尚未使用NHibernate映射的其他域类的属性映射?

时间:2010-09-08 15:02:47

标签: vb.net nhibernate ado.net

我正在开发一个使用NHibernate替换ADO.NET数据访问逻辑的项目,我们无法一次映射整个域模型。这意味着我们将拥有域类,其中包含尚未使用NHibernate映射的其他域类的属性映射。

考虑具有Address属性的Person类(Address是没有NH映射的域对象,Person是我正在映射的类)。如何在Person映射中包含Address而不为Address创建整个映射?

是否可以从自定义PropertyAccessor调用传统(ADO.NET)数据访问逻辑?如果是的话,这是否合理?

*我在另一个问题here中问了这个问题,但没有得到答复。我希望能在一个更简洁的问题中得到一个。

1 个答案:

答案 0 :(得分:1)

在您的示例中,即使您没有为Address创建映射文件,也可能与创建映射文件本身一样多。您可以在转换过程中考虑其他一些选项,例如使用带有“GetPerson”方法的自定义DAL,例如NH加载人员和ADO加载地址。不漂亮或高效,但封装了工作,因此当您想映射地址时,界面不会改变。话虽如此,有一些选项可以使用NHibernate.Transform.AliasToBeanResultTransformer创建自定义数据转换。但实际上最终你必须找到一个很好的方法来分块你的领域模型。使用DAL是一种很好的做法,可以成为ADO和NH疯狂的理想桥梁。