【问题标题】:two aggregate roots in fluent nhibernate流利的nhibernate中的两个聚合根
【发布时间】:2011-07-15 20:22:56
【问题描述】:

问题是我有两个聚合根

聚合根是

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

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


要求是:

  1. 用户可以关联多个来自项目的 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”的另一面应该是什么。

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

【问题讨论】:

    标签: fluent-nhibernate many-to-many aggregateroot mappings


    【解决方案1】:

    也尝试在“NewsArticle”上使用 Inverse() 并为双方负责。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-05
      • 1970-01-01
      • 1970-01-01
      • 2013-11-07
      相关资源
      最近更新 更多