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 
"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