两个实体中的多对多集合流利的NHibernate

时间:2010-03-30 20:13:23

标签: .net fluent-nhibernate

我正在尝试在Fluent NHibernate中映射manyToMany关系并遇到一个问题,这个问题很可能只是我在这个工具上的新手。

我有2个实体,用户和项目。用户可以在许多项目上,项目可以有很多用户。

在我的用户地图中

     HasManyToMany(x => x.Projects).Inverse();

当我在项目中放置相同的地图时,我得到一个例外,因为表名相反。另外我认为我根据这篇文章不需要它:Fluent NHibernate Many-to-Many

我正在逐步查看它是否有效:

     var user = _userRepository.FindByUserName("Josh");
     var projects = user.Projects;
     var user2 = projects[0].Users;

项目会返回包含我的项目的集合。 User2虽然是null。我希望user2成为一个包含与用户相同用户的集合。

所以我做错了什么。感谢。

1 个答案:

答案 0 :(得分:2)

尝试仅在一个映射上放置.Inverse()。

用户映射:

HasManyToMany(x => x.Projects).Inverse();

ProjectMap:

HasManyToMany(x => x.Users);

如果不起作用,请尝试指定表名。

用户映射:

HasManyToMany(x => x.Projects).Inverse().Table("ProjectUser");

ProjectMap:

HasManyToMany(x => x.Users).Table("ProjectUser");