NHibernate 双向多对多关系缓存问题

发布于 2024-09-04 21:10:15 字数 716 浏览 1 评论 0原文

我遇到了双向多对多关系缓存的问题

第一侧映射:

        HasManyToMany(x => x.Jobs)
            .Table("ProfileSuggestStoryJob")
            .AsSet()
            .Cascade.None()
            .ParentKeyColumn("ProfileSuggestStoryId")
            .ChildKeyColumn("JobId")
            .Cache.ReadWrite();

第二侧映射:

        HasManyToMany(x => x.SuggestedProfiles)
            .Table("ProfileSuggestStoryJob")
            .AsSet()
            .Cascade.None()
            .ParentKeyColumn("JobId")
            .ChildKeyColumn("ProfileSuggestStoryId")
            .Inverse().Cache.ReadWrite();

第一侧负责插入/更新/删除,实体存储良好。但在第二侧,缓存未更新,并且集合不包含最近添加的实体。

没有缓存,一切正常...

I got issue with bi-directional ManyToMany relationship caching

First side mapping :

        HasManyToMany(x => x.Jobs)
            .Table("ProfileSuggestStoryJob")
            .AsSet()
            .Cascade.None()
            .ParentKeyColumn("ProfileSuggestStoryId")
            .ChildKeyColumn("JobId")
            .Cache.ReadWrite();

Second side mapping :

        HasManyToMany(x => x.SuggestedProfiles)
            .Table("ProfileSuggestStoryJob")
            .AsSet()
            .Cascade.None()
            .ParentKeyColumn("JobId")
            .ChildKeyColumn("ProfileSuggestStoryId")
            .Inverse().Cache.ReadWrite();

The first side is responsible for the insert/update/delete, entites are well stored. But on the second side the cache is not updated, and the collection don't contains the recently added entity.

Without cache, all is working fine ...

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

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

发布评论

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

评论(1

嘿哥们儿 2024-09-11 21:10:15

关系的每一方都有自己的缓存; NHibernate不会因为第一端的变化而使第二端的缓存失效。

您可以使用 SessionFactory.EvictCollection 手动使其失效。

Each side of the relationship has its own cache; NHibernate will not invalidate the cache of the second side because of changes in the first side.

You can use SessionFactory.EvictCollection to invalidate it manually.

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