nHibernate(fluent)和带有额外元数据的多对多映射

nHibernate(fluent)和带有额外元数据的多对多映射,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,我正在尝试解决如何管理以下关系 一家商店有很多产品 一种产品在许多商店都有 商店知道每种产品有多少种 在数据库中,我有3个表Stores、Products和一个StoreProducts,其中StoreId、ProductId和Quantity 我如何在nHibernate或fluent nHibernate中映射这一点?您必须映射第三个实体,我认为内置的多对多功能不支持这一点。如果有人证明我错了,那就太好了。[这个答案对ORM来说是一般性的,对FNH来说不是特别的] 在(非常好的)这本书(见第

我正在尝试解决如何管理以下关系

一家商店有很多产品
一种产品在许多商店都有 商店知道每种产品有多少种

在数据库中,我有3个表Stores、Products和一个StoreProducts,其中StoreId、ProductId和Quantity


我如何在nHibernate或fluent nHibernate中映射这一点?

您必须映射第三个实体,我认为内置的多对多功能不支持这一点。如果有人证明我错了,那就太好了。

[这个答案对ORM来说是一般性的,对FNH来说不是特别的]

在(非常好的)这本书(见第6.3.2节)中,作者表示,使用多个映射几乎不值得,因为您几乎总是会发现(可能以后)您希望将额外的元数据附加到两个实体之间的“链接”上,因此您也可以自行对该实体建模(正如你在问题中所说的那样)

正如您已经发现的,您需要创建StoreProducts实体和一个多和一个多来完成关联


…尽管您希望确认这是一种“推荐”方法:-)

是的-我自己也得出了这样的结论,商店有一个商店产品集合,其中我携带特定的商店/产品特定数据,这反过来又引用了ProductsST,re:your flag——您的IP完全不同,因此,作为预防措施,您可以编辑您希望合并到此帐户中的帐户,在“关于我”部分添加“请将我的帐户合并到”,然后重新标记请求合并。谢谢