gpt4 book ai didi

c# - 如何在运行时动态修改 NHibernate 加载查询?事件监听器?拦截器?

转载 作者:太空宇宙 更新时间:2023-11-03 14:31:26 24 4
gpt4 key购买 nike

我需要修改用于在我的模型中加载多对一引用的查询。

它还需要处理延迟加载的实体。

具体来说,我需要能够进一步过滤这些数据。不幸的是,NH 不允许我使用内置过滤系统过滤多对一关系 (?)。我可能只是做错了什么。

是否有一个钩子(Hook)可以让我手动和动态修改用于加载数据的查询?或者允许我指定参数的过滤器的替代方法?

背景:

我正在使用一个使用修订控制形式的数据库,每个实体都有一个自然 ID PK、一个 EntityId、一个 RevisionValidTo 和 RevisionValidFrom 字段。可能有很多行使用相同的 EntityId,这是其他表连接的引用,但 Revision 范围是互斥的。因此,该关系只是多对一的 IIF 应用过滤器。然而,NH 没有提供在多对一引用上指定过滤器的方法(它们为集合做...)

最佳答案

在我发现我没有延迟加载我的子对象之前,我一直走这条路。在最初加载时从存储库中填充实体可能是值得的。如果您不想每次都受到打击,您可以在与存储库交互的任何内容上流利一些

GetObject(entityId).Including(x => x.Revisions).Between(...)

关于c# - 如何在运行时动态修改 NHibernate 加载查询?事件监听器?拦截器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2464116/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com