懒惰加载BelongsTo与Castle Active Record的关系?

时间:2010-02-17 17:34:12

标签: nhibernate lazy-loading castle-activerecord

我在Castle AR中有一个关系的以下映射

[BelongsTo("EVENT_ID", Lazy = FetchWhen.OnInvoke)]
        public EventType PayEvent
        {
            get
            {
                return m_PayEvent;
            }
            set
            {
                m_PayEvent = value;
            }
        }

但是即使没有调用属性,也会获取Relation。这里有什么遗漏?我也在使用SessionScope。

3 个答案:

答案 0 :(得分:5)

It works for me。确保将实体标记为延迟,并且属性和方法都是虚拟的。

答案 1 :(得分:0)

此外,如果将NotFoundBehaviour设置为Ignore

,则BelongsTo关系的延迟加载不起作用

样品:

[BelongsTo("EVENT_ID", Lazy=FetchWhen.OnInvoke, NotFoundBehaviour:=NotFoundBehaviour.Ignore)] 

答案 2 :(得分:-3)

您无法启用属于关系的延迟加载 见{{3br /> 你可以自己实现它 将ID存储在模型中,然后:

    public ServicePlan PreviousServicePlan
    {
        get
        {
           if (previousServicePlan == null)
                previousServicePlan = ActiveRecordMediator<ServicePlan>
                    .FindByPrimaryKey(PreviousServicePlanId, false);

           return previousServicePlan;
        }

        private set 
        {
            previousServicePlan = value;
        }
    }