代码之家  ›  专栏  ›  技术社区  ›  JoshReedSchramm

两个实体的多对多收藏Fluent NHibernate

  •  0
  • JoshReedSchramm  · 技术社区  · 15 年前

    我正试图用流利的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是一个包含与用户相同的用户的集合。

    我做错了什么?谢谢。

    1 回复  |  直到 15 年前
        1
  •  2
  •   Catalin DICU    15 年前

    尝试只在一个映射上放置.inverse()。

    UserMap:

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

    ProjectMap:

    HasManyToMany(x => x.Users);
    

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

    UserMap:

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

    ProjectMap:

    HasManyToMany(x => x.Users).Table("ProjectUser");
    
    推荐文章