NHibernate映射,什么时候模型映射臃肿?

时间:2013-05-23 13:58:25

标签: nhibernate domain-model

我有NHibernate模型,如果我应该映射为集合,我会被撕裂。为了简单地说明问题,总是在所有表上引用Person,将所有引用Person的表作为Person的另一个属性(即集合)进行映射是明智的。这太臃肿了吗?

为了防止我的问题出现XY问题:

我想要实现的是从人到另一个表进行 LEFT JOIN ,简单的JOIN是不够的,因为我需要报告所有Person,即使他们没有集合,因此,这需要Linq的DefaultIfEmpty,但是NHibernate还不支持DefaultIfEmpty。但是,我不想使用QueryOver,因为这个查询API看起来像byzantine,30行SQL / Linq将成为带有QueryOver的100行。将所有引用Person模型的模型映射为Person的集合是否很好,所以我仍然可以使用Linq?并且只会在Person的子表上使用FetchMany?

然而,同事不想过度映射所有模型,因为他认为模型会变得臃肿,特别是对于像Person这样的主表。他也认为域模型应该只作为数据存储的外观。这是域建模的实用方法吗?

我只是使用Person模型以最简单的方式说明问题,我认为应该将许多商业模型作为集合映射到另一个模型。这也排除了在执行LEFT JOIN时使用QueryOver API的需要,因此我们仍然可以使用Linq和FetchMany

1 个答案:

答案 0 :(得分:1)

没有臃肿的模特。

您的代码不使用的引用和集合由NH保留。