Oops. Got me one more time!

I remember reading the comment somewhere and not getting it. Maybe was not
read clearly or so, also, today I was following this thread while busy in
non-related work stuff. Anyway, please accept my apology. I know this much
have been way crossed the borders.

And thanks to you for both answering this and baring with me.

Most Regards,

--
Mohamed Meligy
Senior Developer, Team Lead Backup (.Net Technologies) – Applications
Delivery - TDG
Injazat Data Systems
P.O. Box: 8230 Abu Dhabi, UAE.

Phone:  +971 2 6992700
Direct:   +971 2 4045385
Mobile:  +971 50 2623624, +971 55 2017 621

E-mail: [email protected]
Weblog: http://weblogs.asp.net/meligy


On Mon, Nov 9, 2009 at 8:11 PM, Fabio Maulo <[email protected]> wrote:

> The comment is there
> http://nhforge.org/doc/nh/en/index.html#manipulatingdata-loading
> <http://nhforge.org/doc/nh/en/index.html#manipulatingdata-loading>"If the
> class is mapped with a proxy, Load() returns an object that is an
> uninitialized proxy and *does not actually hit the database until you
> invoke a method of the object*. *This behaviour is very useful if you wish
> to create an association to an object without actually loading it from the
> database*."
>
> 2009/11/9 Mohamed Meligy <[email protected]>
>
> Super clear explanation and really really cool feature :) :).
>>
>> Although I'd see it as workaround at first the more I read in the
>> explanation the more I love this!
>>
>> Can this explanation go as the XML comment of the method or something?
>>
>>
>> Thanks a lot *Fabio *(sorry that I didn't understand what you meant at
>> first and assumed without checking), and Anne.
>>
>>
>>
>> Regards,
>>
>> --
>> Mohamed Meligy
>> Senior Developer, Team Lead Backup (.Net Technologies) – Applications
>> Delivery - TDG
>> Injazat Data Systems
>> P.O. Box: 8230 Abu Dhabi, UAE.
>>
>> Phone:  +971 2 6992700
>> Direct:   +971 2 4045385
>> Mobile:  +971 50 2623624, +971 55 2017 621
>>
>> E-mail: [email protected]
>> Weblog: http://weblogs.asp.net/meligy
>>
>>
>> On Mon, Nov 9, 2009 at 12:02 PM, Anne Epstein <[email protected]> wrote:
>>
>>> Mohamed,
>>> See this post:
>>>
>>> http://ayende.com/Blog/archive/2009/04/30/nhibernate-ndash-the-difference-between-get-load-and-querying-by.aspx
>>>
>>> Summary-  Here's what you do to get the behavior you're looking for:
>>>
>>> 1) retrieve your Category from your repository
>>> 2) assign this category to the product
>>> 3) save
>>>
>>> You might ask: "But won't that cause a db SELECT call in step 1?" *No*,
>>> not if you use the Load() method. Load() will create a proxy of your
>>> Category object with the id you specify, *without* getting the contained
>>> data of the Category from the db. Assign that proxy object to the
>>> product.Category. Save your product, and you *never* had to hit the db
>>> to get your Category.  Of course, if you were to access one of the
>>> properties of Category in your code, NH would make a db call to get the
>>> values...   but if you only do a straight Load() and assign the "retrieved"
>>> proxy to product.Category, it'll work exactly the way you want, no SELECTs,
>>> ony one INSERT statement.  Next time you pull Product out of the db and
>>> access its Category, your relationship with this Category will come back out
>>> just the way you want.
>>>
>>> Anne
>>>
>>>
>>>
>>> On Mon, Nov 9, 2009 at 1:47 AM, Mohamed Meligy <[email protected]>wrote:
>>>
>>>> Well, what if I do not want to load the category? I know it sounds
>>>> stupid caring about only one more query it shouldn't be an optimization, 
>>>> but
>>>> I was just curious if it was possible.
>>>>
>>>>
>>>> Regards,
>>>>
>>>> --
>>>> Mohamed Meligy
>>>> Senior Developer, Team Lead Backup (.Net Technologies) – Applications
>>>> Delivery - TDG
>>>> Injazat Data Systems
>>>> P.O. Box: 8230 Abu Dhabi, UAE.
>>>>
>>>> Phone:  +971 2 6992700
>>>> Direct:   +971 2 4045385
>>>> Mobile:  +971 50 2623624, +971 55 2017 621
>>>>
>>>> E-mail: [email protected]
>>>> Weblog: http://weblogs.asp.net/meligy
>>>>
>>>>
>>>>   On Mon, Nov 9, 2009 at 7:26 AM, Fabio Maulo <[email protected]>wrote:
>>>>
>>>>> product.Category = session.Load<Category>(theId);
>>>>>
>>>>>
>>>>> 2009/11/8 Mohamed Meligy <[email protected]>
>>>>>
>>>>>  Let's say I have a mapping like this (using Fluent, sample made up
>>>>>> for the sake of the email)
>>>>>>
>>>>>> References(product => product.Category, "CategoryID");
>>>>>>
>>>>>> where each One Category has zero to Many Products.
>>>>>>
>>>>>> Lets say I need to set the value of the Category.Id of the Product
>>>>>> directly without loading the Category object. I thought I could do 
>>>>>> something
>>>>>> like:
>>>>>>
>>>>>> product.Category.Id <http://product.category.id/> =
>>>>>> int.Parse(ddlCategory.SelectedValue);
>>>>>>
>>>>>> (Code is OVER simplified for demoing here, yes, I have layering in my
>>>>>> application :)).
>>>>>>
>>>>>> Someone told me the proxy handles getting the value for
>>>>>> product.Category.Id <http://product.category.id/> (if exists) without
>>>>>> loading the category, so, I thought it may work when I SET the Id, but 
>>>>>> what
>>>>>> happened is that it gave a NullReferenceException (makes sense of 
>>>>>> course).
>>>>>>
>>>>>> So, I was asking, is there another way of doing this ?? (whether or
>>>>>> not it is a right idea to do it at all please)
>>>>>>
>>>>>>
>>>>>> Thank you very much.
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> --
>>>>>> Mohamed Meligy
>>>>>> Senior Developer, Team Lead Backup (.Net Technologies) – Applications
>>>>>> Delivery - TDG
>>>>>> Injazat Data Systems
>>>>>> P.O. Box: 8230 Abu Dhabi, UAE.
>>>>>>
>>>>>> Phone:  +971 2 6992700
>>>>>> Direct:   +971 2 4045385
>>>>>> Mobile:  +971 50 2623624, +971 55 2017 621
>>>>>>
>>>>>> E-mail: [email protected]
>>>>>> Weblog: http://weblogs.asp.net/meligy
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Fabio Maulo
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>
>>
>>
>
>
> --
> 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to