两个实体中的多对多集合 Fluent NHibernate

发布于 2024-08-27 00:14:21 字数 656 浏览 5 评论 0原文

我正在尝试在 Fluent NHibernate 中映射多对多关系,但遇到了一个问题,很可能只是我刚接触该工具。

我有 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 为空。我希望 user2 是一个包含与 user 相同的用户的集合。

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

I'm trying to map a manyToMany relationship in Fluent NHibernate and running into a problem that's most likely just me being new at the tool.

I have 2 Entities, User and Project. A User can be on many projects and a project can have many users.

In my map for User I have

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

When i put the identical map in project i get an exception because the table name is opposite. Also i thought I didnt need it based on this post: Fluent NHibernate Many-to-Many

I'm stepping through this to see if it is working:

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

What happens is projects returns a collection containing my project. User2 is null though. I would expect user2 to be a collection containing the same user as user.

So what am i doing wrong. Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

老旧海报 2024-09-03 00:14:21

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

UserMap:

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

ProjectMap:

HasManyToMany(x => x.Users);

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

用户地图:

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

项目地图:

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

Try putting .Inverse() on one mapping only.

UserMap:

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

ProjectMap:

HasManyToMany(x => x.Users);

If that doens't work try specifing the table name.

UserMap:

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

ProjectMap:

HasManyToMany(x => x.Users).Table("ProjectUser");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文