在Fluent NHibernate中检查是否存在延迟加载的子项而不获取/加载

时间:2009-08-23 03:31:51

标签: nhibernate fluent-nhibernate proxy lazy-loading parent-child

这应该很容易,但我似乎无法弄明白......如何检查实体上的孩子是否存在而没有实际获取或获取它?这孩子现在懒得装..

所以我有两个实体:

class A
{
    public virtual int Id { get; set; }
    public virtual B Child { get; set; }
}
class B
{
    public virtual int Id { get; set; }
    public virtual byte[] Blob { get; set; }
}

我想在A的实例中检查是否存在B而没有实际获取大型博客...在直接sql中我可以检查看看child_id是否为null ...有什么方法我可以查询A的NHibernate代理B?

谢谢!

3 个答案:

答案 0 :(得分:8)

NHibernateUtil.IsInitialized(...)将告诉您是否已加载代理对象。

答案 1 :(得分:4)

nm - 可以检查空值。只有孩子存在才会有代理。

答案 2 :(得分:1)

空值检查是一个完美的解决方案:高效,易懂。