聚合根源
项目可以拥有相关新闻文章的集合。 新闻文章可以包含相关项目的集合。
NewsArticle - * NewsArticleProject * - Project。
新闻文章方面
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'的另一面应该是什么。
如果有人能帮我提出解决方案,请提前致谢。
答案 0 :(得分:0)
尝试并在“NewsArticle”上使用Inverse()来保存双方的责任。
public void Override(AutoMapping<NewsArticle> mapping)
{
mapping.HasManyToMany(c => c.FeaturedProjects).Cascade.All().Table("NewsArticleProject").Inverse().AsSet();
}