gpt4 book ai didi

用于选择具有空子集合的所有实体的 nHibernate 标准

转载 作者:行者123 更新时间:2023-12-02 00:40:24 29 4
gpt4 key购买 nike

我很难编写条件来选择所有子集合或孙集合为空的实体。我可以将这些作为单独的条件来执行,但我无法将其组合成一个条件。

类结构:

public class Component
{
public IList<Version> Versions { get; set; }
}

public class Version
{
public IList<SubscribeEvent> SubscribedEvents { get; set; }
public IList<PublishEvent> PublishedEvent { get; set; }
}

这不起作用:

return session
.CreateCriteria<Component>("c")
.CreateCriteria("Versions", "v")
.Add(Restrictions.Or(Restrictions.IsEmpty("c.Versions"), Restrictions.And(Restrictions.IsEmpty("v.PublishedEvents"),
Restrictions.IsEmpty("v.SubscribedEvents"))))
.SetCacheable(true);

最佳答案

我设法找到了一个解决方案,不确定它是否是最好的(我应该购买 NH profiler)

return session
.CreateCriteria<Component>("c")
.CreateAlias("Versions", "v", JoinType.LeftOuterJoin)
.Add(Restrictions.Or(Restrictions.IsEmpty("c.Versions"),
Restrictions.And(Restrictions.IsEmpty("v.SubscribedEvents"),
Restrictions.IsEmpty("v.PublishedEvents"))))
.SetCacheable(true);

关于用于选择具有空子集合的所有实体的 nHibernate 标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2782994/

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