True Diego, I am still thinking in SQL ;) I guess I want the benefits of both...
Anyways, you pretty much confirmed my thinking on this: if you opt for the ORM route, then you have to invest 100% into it to get the full effects. ORM's are like a lifeboat that starts out deflated and only has value when inflated with air (data, mappings, etc.). Thanks, Jeff On Thu, Dec 17, 2009 at 2:16 PM, Diego Mijelshon <[email protected]>wrote: > Jeff, > > You are still thinking in SQL. > > Of course you can map ParentId as an int property and retrieve Parents by > id on demand, but there's no point on doing that. You lose capabilities and > you don't gain performance; you lose it because you can't join on demand > (because the relationship has not been established). > > Diego > > > > On Thu, Dec 17, 2009 at 17:25, Jeffry Morris <[email protected]>wrote: > >> Yeah, I know that n+1 can be avoided, what I am asking is if mapping a >> table to entity 1:1 and implicitly ignoring any foreign key relationships >> would be considered a bad practice. I am guessing it would affect 2nd level >> caching, but I am not sure exactly. >> >> If you were using say, linq to nhibernate, would you need this mapping >> since you provide any joins explicitly? For example: >> >> var x = from o in Order >> join i in OrderItems on o.OrderId equals i.OrderIId >> select i; >> >> So, in this case what is the purpose of having a "Has A" type relationship >> between Order and List<OrderItem> unless it is a ORM specific requirement? >> All I want todo is map table to entity and let the db handle foriegn key >> relationship via constraints. To me, the entity is just the data. >> >> Thanks, >> >> -Jeff >> >> >> On Thu, Dec 17, 2009 at 5:35 AM, Diego Mijelshon >> <[email protected]>wrote: >> >>> You will not have n+1 problems because of the relationships as long as >>> you use them correctly. >>> For the particular case that you mentioned, if you have a ParentId, you >>> don't even need to load the parent to get the children. >>> >>> >>> Diego >>> >>> >>> On Wed, Dec 16, 2009 at 22:06, jmorris <[email protected]> wrote: >>> >>>> Any advice on mapping tables directly to entities and using them as >>>> pure DTOs? Basically you ignore the foreign key reference as a child >>>> of the parent entity and explicitly load the children as needed: >>>> select * from children where children.parentid= xxx? >>>> >>>> I know this goes somewhat against the ORM grain, but when most of your >>>> usage is simply displaying list data, then this is a very per-formant >>>> way of getting what you need an avoiding any n+1 issues with ORMs. In >>>> this case your entities are just data, they are not even objects (data >>>> and behavior). >>>> >>>> Thoughts? >>>> >>>> -- >>>> >>>> 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]<nhusers%[email protected]> >>>> . >>>> For more options, visit this group at >>>> http://groups.google.com/group/nhusers?hl=en. >>>> >>>> >>>> >>> -- >>> 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]<nhusers%[email protected]> >>> . >>> For more options, visit this group at >>> http://groups.google.com/group/nhusers?hl=en. >>> >> >> -- >> 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]<nhusers%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/nhusers?hl=en. >> > > -- > 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]<nhusers%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/nhusers?hl=en. > -- 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.
