2010-02-17 6 views
2

je le mappage suivant pour une relation dans le château ARChargement paresseux Appartient à Relation avec Castle Active Record?

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

Mais la relation est tiré par les cheveux, même si la propriété est pas là invoked.Is quelque chose qui manque ici? J'utilise également SessionScope.

+0

essayer http://www.mail-archive.com/castle-project- [email protected]/msg04298.html –

+0

J'ai essayé celui-ci mais ça ne marche pas pour moi. – Amitabh

Répondre

5

It works for me. Assurez-vous que l'entité est marquée comme paresseuse et que les propriétés et méthodes sont toutes virtuelles.

+0

Ne fonctionne pas, même avec virtuel et Lazy = FetchWhen.OnInvoke. – Justin

+0

@Justin avez-vous téléchargé mon code et cela n'a pas fonctionné? –

-3

Vous ne pouvez pas activer le chargement différé avec des liens à la relation.
Voir here.
Vous pouvez l'implémenter vous-même.
stocker l'ID dans votre modèle puis:

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

      return previousServicePlan; 
     } 

     private set 
     { 
      previousServicePlan = value; 
     } 
    } 
+1

C'est une ancienne documentation (pour ActiveRecord RC1). Lazy BelongsTo a été implémenté depuis. –

0

en plus de chargement paresseux pour les relations Appartient ne fonctionne pas si vous définissez NotFoundBehaviour sur Ignorer

Exemple:

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