首页 文章

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

提问于
浏览
0

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

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

在我的用户 Map 中

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

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

我正在逐步查看它是否正常工作:

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

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

那么我做错了什么 . 谢谢 .

1 回答

  • 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");
    

相关问题