0

问题是我有两个聚合根

聚合根是

  1. 项目。
  2. 新闻文章。

一个项目可以有一组相关的 NewsArticle。一个 NewsArticle 可以有一个相关项目的集合。


要求是:

  1. 用户可以从 Projects 中关联多个 NewsArticle。
  2. 用户可以从 NewsArticles 关联多个项目。

在数据库中。

NewsArticle --* NewsArticleProject *-- 项目。


在映射中

新闻文章侧

public void Override(AutoMapping<NewsArticle> mapping)
{
mapping.HasManyToMany(c => c.FeaturedProjects).Cascade.All().Table("NewsArticleProject").AsSet();
}

项目方

public void Override(AutoMapping<Project> mapping)
{
mapping.HasManyToMany(c => c.FeaturedNewsArticles).Table("NewsArticleProject").Inverse().AsSet();
}

我也尝试过HasMany(),但这给了我一条错误消息,抱怨我也设置了 ColumnName。


我正在努力让流利的 nHibernate 很好地融入它的映射,以便它可以满足我的要求。

我只能设法让它在一侧工作,但是当我尝试让它与另一侧一起工作时,我收到了这个错误消息。

无法弄清楚多对多属性“FeaturedNewsArticles”的另一面应该是什么。

如果有人可以帮助我提出解决方案,请提前致谢。

4

1 回答 1

0

尝试通过在“NewsArticle”上使用 Inverse() 将保存的责任交给双方。

public void Override(AutoMapping<NewsArticle> mapping)
{
  mapping.HasManyToMany(c => c.FeaturedProjects).Cascade.All().Table("NewsArticleProject").Inverse().AsSet();
}
于 2011-06-05T13:32:05.860 回答