I'm checking the issue with "set" when back from work tonight. The cascade all came from original checks of Jose I got (IF i remember correctly).
---- And seriously, "please" stop this horse and stone thing. You keep saying people say because the two are "things" then they are similar. But of course, "an / two NHibernate mapping option(s)" != "a / two thing(s)" to keep making this "conform/FNH == stone/horse" statement. I just happened to like FNH class mappings and happened to try automappings with these samples. You seem to me ignoring the people who like FNH maybe because of good reasons like you mentioned in blog they didn't try to make it a usable NH patch and/or they don't use NH conventions. All this is fair enough, but this "strone vs horse" one is not. --- Having said that, I do believe once a convention based mapping is built into NHibernate and hopefully clearly named (no sexy/cool whatever unobvious meanings namings in API/classes), with the performance improvement and the fact its built in, it clearly is going to be the way to go. That's why I'm so excited about your blog post about that and waiting for more. *Thanks a lot for your contributions to it*. Regards, *Mohamed Meligy *Readify | Senior Developer M:+61 451 835006 | W: readify.net [image: Description: Description: Description: Description: rss_16]<http://gurustop.net> [image: Description: Description: Description: Description: cid:[email protected]] <http://www.linkedin.com/in/meligy> [image: Description: Description: Description: Description: cid:[email protected]] <http://twitter.com/meligy> <http://www.greatplacetowork.com.au/best/best-companies-australia.php><http://www.readify.net/AboutUs/NewsItem.aspx?id=10> On Thu, Apr 28, 2011 at 3:39 AM, Fabio Maulo <[email protected]> wrote: > That mapping works just because you are lucky... > All collections as set, all with cascade=all... btw zero lines of > customization is zero lines. > a horse can be equal to a stone until you don't need to run with it. > > > On Wed, Apr 27, 2011 at 2:27 PM, Mohamed Meligy <[email protected]>wrote: > >> Here it is: >> >> http://gurustop.net/blog/2011/04/17/nh-nhibernate-mapping-jose-romaniello-ef-conform-domain-using-fnh-fluentnhibernate/<http://bit.ly/jt0BbN> >> >> >> >> *Mohamed Meligy >> *Readify | Senior Developer >> >> M:+61 451 835006 | W: readify.net >> [image: Description: Description: Description: Description: >> rss_16]<http://gurustop.net> >> [image: Description: Description: Description: Description: >> cid:[email protected]] <http://www.linkedin.com/in/meligy> >> [image: >> Description: Description: Description: Description: >> cid:[email protected]] <http://twitter.com/meligy> >> >> <http://www.greatplacetowork.com.au/best/best-companies-australia.php><http://www.readify.net/AboutUs/NewsItem.aspx?id=10> >> >> >> >> On Wed, Apr 27, 2011 at 9:20 PM, Fabio Maulo <[email protected]>wrote: >> >>> Mohamed, what about that old example with FNH ? have you some news ? >>> >>> -- >>> Fabio Maulo >>> >>> >>> El 27/04/2011, a las 00:49, Mohamed Meligy <[email protected]> >>> escribió: >>> >>> You might be looking for something like: >>> >>>> >>>> session.CreateFilter(entity.YourCollection).SetMaxResults(x).SetFirstResult(y) >>> >>> This is quoted from one of Fabio's latest emails to this list. Thanks >>> Fabio! >>> >>> You mihgt also have some kind of view model or whatever, that has the >>> project entity and the Tasks collection and maybe the pagining parameters >>> (like total count, etc...). >>> You can use features like Futures and <http://ADO.NET>ADO.NET batch size >>> to optimize querying for this. >>> >>> >>> >>> *Mohamed Meligy >>> *Readify | Senior Developer >>> >>> M:+61 451 835006 | W: readify.net >>> [image: Description: Description: Description: Description: >>> rss_16]<http://gurustop.net> >>> [image: Description: Description: Description: Description: >>> cid:[email protected]] <http://www.linkedin.com/in/meligy> >>> [image: Description: Description: Description: Description: >>> cid:[email protected]] <http://twitter.com/meligy> >>> >>> <http://www.greatplacetowork.com.au/best/best-companies-australia.php><http://www.readify.net/AboutUs/NewsItem.aspx?id=10> >>> >>> >>> >>> On Wed, Apr 27, 2011 at 7:10 AM, Stephen Hardie < <[email protected]> >>> [email protected]> wrote: >>> >>>> Ok let's use another example (I only used customer/order objects because >>>> everyone is on the same page regarding them, or so I thought)... >>>> >>>> Say I have a project and a task object. the project has many tasks >>>> (10,000) and I wan't to go through all 10,000 tasks and invoke them all. As >>>> it stands now if I wanted to do this, I'd have to go through IQuery and >>>> page >>>> the tasks directly. Instead I would prefer the following.. >>>> >>>> 1. Get the project (by id) >>>> 2. Enumeration project.Tasks (this step is where nhibernate should >>>> offer the ability to page the Tasks collection automatically.) >>>> (Note: I've seen and used another ORM framework that actually did >>>> provide this functionality, unfortunately it's proprietary and very old, >>>> before nhibernate existed). >>>> 3. Invoke the task. >>>> >>>> >>>> The point isn't about what two parent/child objects I have, the point is >>>> I want to be able to page a parent's child collection without breaking up >>>> the domain model or turning lazy loading off. >>>> >>>> >>>> Thank you José for listening and discussing this with me. It's very >>>> helpful! >>>> >>>> >>>> >>>> On Tue, Apr 26, 2011 at 11:07 AM, José F. Romaniello >>>> <<[email protected]> >>>> [email protected]> wrote: >>>> >>>>> You are mixing concepts here. >>>>> Aggregate roots has nothing to do with hierarchies structures. >>>>> The domain you are showing is the -hello world- of learning what is an >>>>> aggregate and what it is not. >>>>> Order and Customer are *usually* two different aggregates, while >>>>> OrderLine belongs to the Order aggregate. >>>>> You have to think what does make more sense for your application and >>>>> what thing deserve to be an aggregate root. If you have customers with >>>>> 10.000 orders Id say; without any doubt, that an "order" is an important >>>>> thing in your system *per-se*. >>>>> >>>>> A worse example of what you are doing will be to nest everything like; >>>>> Country => Provinces => Cities => Customer => Orders.. >>>>> Then if you need to add an order to your system, you use a >>>>> CountryRepository to get the country of the customer, find the province of >>>>> your customer, find the city, find the customer, and add the order to his >>>>> order collection. This does not make sense. >>>>> >>>>> 2011/4/26 Stephen Hardie < <[email protected]>[email protected]> >>>>> >>>>>> Because making it into it's own aggregate root breaks the domains >>>>>> hierarchy structure, which in turn causes the domain model to be that >>>>>> much >>>>>> more difficult to understand and follow. >>>>>> >>>>>> >>>>>> On Tue, Apr 26, 2011 at 4:14 AM, José F. Romaniello >>>>>> <<[email protected]> >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Order is almost always an aggregate root in that example. >>>>>>> >>>>>>> Why do you think that having Customer -> Orders (10000) is less >>>>>>> uglier than having Order as aggregate root? >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> 2011/4/26 Kinstephen < <[email protected]>[email protected]> >>>>>>> >>>>>>>> as Customer -> >>>>>>>> Orders (10,000 or more records/entities) >>>>>>>> >>>>>>> ... >>>>>>> >>>>>>> And the only work around architecturally is to make Orders into an >>>>>>>> aggregate root of it's own and then use IQuery to setup paging. To >>>>>>>> me >>>>>>>> this seems rather ugly as it breaks the domain hierarchy up into an >>>>>>>> unnatural object model. >>>>>>>> >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "nhusers" group. >>>>>>> To post to this group, send email to <[email protected]> >>>>>>> [email protected]. >>>>>>> To unsubscribe from this group, send email to >>>>>>> <nhusers%[email protected]> >>>>>>> [email protected]. >>>>>>> For more options, visit this group at >>>>>>> <http://groups.google.com/group/nhusers?hl=en> >>>>>>> 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]> >>>>>> [email protected]. >>>>>> To unsubscribe from this group, send email to >>>>>> <nhusers%[email protected]> >>>>>> [email protected]. >>>>>> For more options, visit this group at >>>>>> <http://groups.google.com/group/nhusers?hl=en> >>>>>> 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]> >>>>> [email protected]. >>>>> To unsubscribe from this group, send email to >>>>> <nhusers%[email protected]> >>>>> [email protected]. >>>>> For more options, visit this group at >>>>> <http://groups.google.com/group/nhusers?hl=en> >>>>> 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]> >>>> [email protected]. >>>> To unsubscribe from this group, send email to >>>> <nhusers%[email protected]> >>>> [email protected]. >>>> For more options, visit this group at >>>> <http://groups.google.com/group/nhusers?hl=en> >>>> 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. >>> >>> -- >>> 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. >>> >> >> -- >> 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. >> > > > > -- > Fabio Maulo > > -- > 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. > -- 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.
