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.