我正试图用流利的nhibernate来描绘一段很多人的关系,并遇到一个问题,很可能就是我刚接触这个工具。
我有两个实体,用户和项目。一个用户可以在许多项目上,一个项目可以有许多用户。
在我的用户地图中
HasManyToMany(x => x.Projects).Inverse();
当我在项目中放置相同的映射时,会得到一个异常,因为表名是相反的。另外,我认为我不需要它,基于这个帖子: Fluent NHibernate Many-to-Many
我要通过这个来看看它是否有效:
var user = _userRepository.FindByUserName("Josh"); var projects = user.Projects; var user2 = projects[0].Users;
发生的是Projects返回包含我的项目的集合。但是user2为空。我希望用户2是一个包含与用户相同的用户的集合。
我做错了什么?谢谢。
尝试只在一个映射上放置.inverse()。
UserMap:
ProjectMap:
HasManyToMany(x => x.Users);
如果这不起作用,请尝试指定表名。
HasManyToMany(x => x.Projects).Inverse().Table("ProjectUser");
HasManyToMany(x => x.Users).Table("ProjectUser");