Specifying IProfileProxy you can cast any lazy-loaded Profile to either
IProfileA or IProfileB and then work against the interface.
Is that what you were asking for?


On Fri, Mar 20, 2009 at 9:39 PM, kello <[email protected]> wrote:

>
> I don't see how an interface that derives from two other interfaces
> would help in doing different things depending on the type? For
> example
>
> if (Profile is ProfileA) DoA(); else if(Profile is ProfileB) DoB();
>
> Or when using the Visitor pattern.... Am I missing something?
>
> /Jonas
>
> On Mar 20, 10:35 pm, Germán Schuager <[email protected]> wrote:
> > I've worked out a similar situation using interfaces like this:
> >
> > interface IProfileA
> >
> > class ProfileA : IProfileA
> >
> > interface IProfileB
> >
> > class ProfileB : IProfileB
> >
> > interface IProfileProxy : IProfileA, IProfileB
> >
> > then specifying proxy="Namespace.IProfileProxy" in the base class mapping
> > and working against the interfaces.
> >
> >
> >
> > On Thu, Mar 19, 2009 at 2:02 PM, RoyWagner <[email protected]> wrote:
> >
> > > This is the situation:
> >
> > > I have an abstract Profile class and 2 derived classes let’s call the
> > > ProfileA and ProfileB.
> > > Then mapping structure that I use is table per class hierarchy.
> >
> > > I also  have a user class that have reference to a Profile:
> >
> > > Public class User
> > > {
> > >        public virtual Profile Profile { get; set; }
> > > }
> >
> > > I use lazy load for the Profile property.
> >
> > > The problem is that when try to cast the User.Profile to one of the
> > > derived classes(PofileA or ProfileB) I get an error that I can’t cast
> > > ProfileProxy16982… to ProfileA.
> > > NHibernate create ProfileProxy object in order to support the lazy
> > > load and that prevent me from casting the Profile object.
> >
> > > The only solution I have right now is to cancel the lazy load.- Hide
> quoted text -
> >
> > - Show quoted text -
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to