我有以下两个表:
Package
id
ClientPackage
id
clientNumber
packageId
问题是我在这个数据库中没有Client表(它驻留在另一个数据库中)。有没有办法可以创建客户端映射到客户端模型,该模型只包含ClientPackage表中的不同“clientNumber”,同时将ClientPackage视为关联表 - 这意味着我不需要ClientPackage的类或映射。我想我可以用一个组件和一个idbag来完成这个,但我只是想要一个更有经验的意见,以便我知道我做的是正确的。
答案 0 :(得分:1)
从NH的角度来看,这不是一个多对多的关系,正是因为没有映射客户端。
映射取决于您希望它在域模型中的表示方式。
idbag可以很好地将Package.Clients
映射为ICollection<int>
。您不需要组件:
<idbag name="Clients" table="ClientPackage">
<collection-id column="id" type="...">
<generator class="..."/>
</collection-id>
<key column="packageId"/>
<element column="clientNumber"/>
</idbag>
然后你将使用这些ID来获取其他数据库中的客户端。