如何将两个表与非键的列连接在一起(在NHibernate中)?

时间:2011-02-12 13:35:32

标签: c# nhibernate fluent

我有一个具有Id(PK)的表和另一个包含大量信息的表。从第一个表到第二个表中的某些数据将存在一对多关系,但在任何地方都没有FK。所以我想在table1.Id上使用table2.OtherId。

进行内连接

我的模型设置了IList,在我的table1地图中我有:

HasMany(x => x.Properties).KeyColumn("table2id");

但我想因为它不知道在第一个表中加入该列的内容,所以它不起作用。我知道table2模型工作正常,因为我已经自己尝试了,我得到了所有正确的数据。正是这个HasMany的东西搞砸了。

我在这里查看了其他“相关”问题,但我看不出任何对我有用的东西。

2 个答案:

答案 0 :(得分:0)

您不必具有FK关系,但KeyColumn中指定的列必须是table2的主键。我不知道解决方法。

答案 1 :(得分:0)

事实证明,我需要在Table2中将References映射到Table1。然后只需在Table1 Mapping中对HasMany(x => x.Properties).Inverse.Cascade.None()进行排序。