Have you tried asking on the nhibernate
users<http://groups.google.com/group/nhusers/> mailing
list? I think they could do a better job of helping you optimise your
mapping. We can assist you with the fluent version once you have a suggested
xml mapping.

On Wed, Mar 3, 2010 at 10:49 PM, sianabanana <sianm...@hotmail.com> wrote:

> Bump! anyone with any ideas?
>
> On Mar 1, 1:24 pm, sianabanana <sianm...@hotmail.com> wrote:
> > Hi,
> >
> > I have a One - To - One relationship
> >
> > Product may have 0 or 1 CustomItem
> > CustomItem refrences Product
> >
> > my database model simplified is
> >
> > Product table - columns - ProductId, CutomItemId
> > Custom Item table - columns - CustomItemid, Additional information
> >
> > public class Product
> >     {
> >         public virtual int Id { get; set; }
> >         public virtual CustomItem CustomItem { get; set; }
> >     }
> >
> >     public class CustomItem
> >     {
> >         public virtual int Id { get; set; }
> >         public virtual string AdditionalInformation { get; set; }
> >         public virtual Product Product { get; set; }
> >     }
> >
> > my overrides (im using auto mapping)
> > public class ProductMapOverride : IAutoMappingOverride<Product>
> >     {
> >         public void Override(AutoMap<Product> map)
> >         {
> >             map.References(x => x.CustomItem)
> >                 .Unique()
> >                 .TheColumnNameIs("CustomItemId")
> >                 .LazyLoad()
> >                 .Cascade.None();
> >         }
> >     }
> >
> >     public class CustomItemMapOverride :
> > IAutoMappingOverride<CustomItem>
> >     {
> >         public void Override(AutoMap<CustomItem> map)
> >         {
> >             map.HasOne(x => x.Product)
> >                 .PropertyRef(p => p.CustomItem)
> >                 .Cascade.All();
> >         }
> >     }
> >
> > When i query my repository calling .Expand("CustomItem")
> >
> > in my profiler, this is what i see..
> > SELECT this_.ProductId                    as ProductId0_1_,
> >        this_.CustomItemId                 as CustomIt2_0_1_,
> >        customitem2_.CustomItemId          as CustomIt1_1_0_,
> >        customitem2_.AdditionalInformation as Addition2_1_0_
> > FROM   `Product` this_
> >        left outer join `CustomItem` customitem2_
> >          on this_.CustomItemId = customitem2_.CustomItemId
> >
> > this looks good - it has asked for the custom item info
> >
> > but then i get n+1 of these
> > SELECT product0_.ProductId    as ProductId0_0_,
> >        product0_.CustomItemId as CustomIt2_0_0_
> > FROM   `Product` product0_
> > WHERE  product0_.CustomItemId =? p0
> >
> > can any one shed any light on how i can get rid of this N+1 problem.
> > Its driving me crazy
>
> --
> You received this message because you are subscribed to the Google Groups
> "Fluent NHibernate" group.
> To post to this group, send email to fluent-nhibern...@googlegroups.com.
> To unsubscribe from this group, send email to
> fluent-nhibernate+unsubscr...@googlegroups.com<fluent-nhibernate%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/fluent-nhibernate?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" group.
To post to this group, send email to fluent-nhibern...@googlegroups.com.
To unsubscribe from this group, send email to 
fluent-nhibernate+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/fluent-nhibernate?hl=en.

Reply via email to