我正在尝试在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成为一个包含与用户相同用户的集合。
所以我做错了什么。感谢。
答案 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");