流畅的nhibernate外键与2列映射

时间:2012-09-17 16:07:54

标签: nhibernate fluent-nhibernate foreign-keys

我必须使用现有的架构,我想用nhibernate映射它。

实体/表架构:

post {
  pk_id
  prod_id
  prod_internid
  title
}

tag {
  pk_t_id
  prod_id
  prod_internid
  name
}

一个帖子可以有多个标签,并且从标签到帖子表有一个外键约束,有两列prod_id和prod_internid。

我试过这个:

PostMap {
  // tags is a list
  HasMany(x => x.tags).KeyColumns.Add("prod_id", "prod_internid");
}

TagMap {
  References(x => x.post).Columns("prod_id", "prod_internid");//.ForeignKey();
}

我收到此错误:

NHibernate.FKUnmatchingColumnsException: Foreign key (FK98806C8630C05A78:tag [prod_id, prod_internid])) must have same number of columns as the referenced primary key (post [pk_id])

如何以正确的方式映射?

1 个答案:

答案 0 :(得分:1)

我认为NHibernate目前不支持此功能,但它在Hibernate中。看起来像你或有人需要移植它。看看这个NH问题:

https://nhibernate.jira.com/browse/NH-1722

我还发现了之前关于此的StackOverflow文章:

many-to-one with multiple columns