gpt4 book ai didi

.net - NHibernate 过滤器不适用于 Session.Get

转载 作者:行者123 更新时间:2023-12-04 12:50:11 24 4
gpt4 key购买 nike

我正在尝试实现一个可软删除的存储库。通常这可以通过删除事件监听器轻松完成。要过滤掉已删除的实体,我可以添加 哪里属性到我的类映射。但是,我还需要在存储库中为此实体实现另外两个方法:恢复 清除 .恢复将“取消删除”实体,清除将硬删除它们。这意味着我不能使用 Where 属性(因为它阻止了任何访问的软删除实体)

我尝试使用 过滤器 反而。我可以创建一个过滤器并在 session 中启用或禁用它以获得相同的结果。但问题是过滤器对 Session.Get 方法没有任何影响(它们只影响基于 ICriteria 的访问)。

关于如何解决这个问题的任何想法?

谢谢

最佳答案

引用法比奥·毛洛的话:

By design.Filters don't work with Get or Load since they mean: I want load the entity with this ID.

Dynamic filters work with HQL/Criteria and Collection(where enabled for a collection) only when you use explicit joins or, more general, when the QuerySpace of a filter match with the QuerySpace of a query.

关于.net - NHibernate 过滤器不适用于 Session.Get,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/611891/

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