+1 here as well. Would solve some problems :)

On Sun, Jun 21, 2009 at 3:21 AM, James Gregory <[email protected]>wrote:

> +1 to that. The lambda map is hardly the most intuitive for dynamic
> components.
>
>
> On Sun, Jun 21, 2009 at 12:35 AM, rob <[email protected]> wrote:
>
>>
>> That would be great!!!
>>
>> On Jun 20, 7:05 pm, Paul Batum <[email protected]> wrote:
>> > Ahh yes, of course. Indeed, this expression from my code above is never
>> > executed:
>> >
>> > (string)x[temp]
>> >
>> > It is converted to an expression tree and inspected. The code that does
>> this
>> > inspection is -very- basic, I can see how this won't work currently.
>> >
>> > Maybe we should add a Map overload for dynamic components that just
>> takes a
>> > string instead of a lambda expression?
>> >
>> > On Sun, Jun 21, 2009 at 4:33 AM, rob <[email protected]> wrote:
>> >
>> > > Hmm..then my code should work too..i'll have to take a closer look on
>> > > Monday.
>> >
>> > > But.... I think what you're saying makes sense if you were invoking
>> > > the funcion declared in the lamda within the same scope; it would use
>> > > the temp variable declared in the loop. But, in this case, the
>> > > function is invoked in a different class (RefelectionHelper I
>> > > believe), and that class doesn't declare a variable called temp.
>> > > Also, I can't remember the code now,  but I don't think fluent ever
>> > > invokes the funciotn declared by the lambda; it just examines the
>> > > expression tree to pull out properties for the purposes of generating
>> > > the mapping. And when it does, it won't know what to do w/ "temp".
>> > > Hopefully I'm wrong. :)
>> >
>> > > On Jun 20, 12:19 pm, James Gregory <[email protected]> wrote:
>> > > > Rob: Just FYI, as far as I understand temp will still exist at the
>> time
>> > > > because it's used within the closure. .Net imports that variable
>> into the
>> > > > lambda's scope.
>> >
>> > > > On Sat, Jun 20, 2009 at 4:32 PM, Pablo Ruiz <[email protected]>
>> > > wrote:
>> >
>> > > > > private void SetupComponentParts(DynamicComponentPart<IDictionary>
>> > > part)
>> > > > > {
>> > > > >    IList<string> dynamicColumns = GetCustomerColumns();
>> > > > >    foreach(string col in dynamicColumns)
>> > > > >    {
>> > > > >      string temp = col; // Avoid any modified closure issues.
>> > > > >      c.Map(x => (string)x[temp]);
>> > > > >    }
>> > > > > }
>> >
>> > > > > DynamicComponent(x => x.AdditionalFields, c =>
>> SetupComponentParts(c));
>> >
>> > > > > That's it..
>> >
>> > > > > On Sat, Jun 20, 2009 at 5:11 PM, rob <[email protected]> wrote:
>> >
>> > > > >> Funny...this is exactly my situation. See my post on Dynamic
>> > > > >> components from a couple days ago. Unfortunately, this statement
>> won't
>> > > > >> work:
>> > > > >>  c.Map(x => (string)x[temp]);
>> >
>> > > > >> because the variable temp isn't evaluated in the loop; the
>> statement
>> > > > >> is turned into an expression tree and evaluated later; at which
>> time
>> > > > >> "temp" won't exist. I've been trying all sorts of things the past
>> few
>> > > > >> days, and may be close to a solution involvoing manually building
>> the
>> > > > >> expression tree. Should know more on Monday. Keep me posted if
>> you
>> > > > >> figure something out!
>> >
>> > > > >> On Jun 20, 8:45 am, Paul Batum <[email protected]> wrote:
>> > > > >> > Hi Silvia,
>> >
>> > > > >> > Can the column details be discovered at startup time? I'm
>> thinking
>> > > of
>> > > > >> > something like this:
>> >
>> > > > >> > IList<string> dynamicColumns = GetCustomerColumns();
>> > > > >> > DynamicComponent(x => x.AdditionalFields, c =>{
>> > > > >> >   foreach(string col in dynamicColumns)
>> > > > >> >   {
>> > > > >> >     string temp = col; // Avoid any modified closure issues.
>> > > > >> >     c.Map(x => (string)x[temp]);
>> > > > >> >   }
>> >
>> > > > >> > });
>> >
>> > > > >> > Paul Batum
>> >
>> > > > >> > On Tue, Jun 16, 2009 at 10:10 AM, Silvia <[email protected]>
>> > > wrote:
>> >
>> > > > >> > > I have the below situation that I need help figure it out.
>> > > > >> > > I am using fluent nhibernate with a legacy database. I need
>> to map
>> > > > >> > > some additional columns to a dictionary(?) property in my
>> entity
>> > > > >> > > dynamically, because I do not know the number of columns and
>> > > column
>> > > > >> > > names and other specifications at compile time and I
>> dynamically
>> > > need
>> > > > >> > > to work with those columns(insert,update...).There is another
>> > > object
>> > > > >> > > which has those information and has a relationship with my
>> main
>> > > entity
>> > > > >> > > based on the value of two other columns.Is this possible in
>> > > > >> > > nhibernate?
>> > > > >> > > I tried to use DynamicComponent but the problem is I don't
>> know
>> > > what
>> > > > >> > > would be the properties in my component.
>> > > > >> > > I have something like this:
>> >
>> > > > >> > > In Entity.cs :
>> > > > >> > > public virtual IDictionary AdditionalFields { get; set; }
>> > > > >> > > public virtual  Info AdditionalFieldsInfo{get; set;}
>> >
>> > > > >> > > And in  EntityMap.cs:
>> > > > >> > > References(x => x.AdditionalFieldsInfo);
>> > > > >> > > and I supposedly should have something like this:
>> > > > >> > > DynamicComponent(x => x.AdditionalFields , m =>
>> > > > >> > > {
>> > > > >> > > m.Map(?Which I don't know how to map because I dont have the
>> > > number of
>> > > > >> > > columns to be mapped and column names.These information needs
>> to
>> > > come
>> > > > >> > > from AdditionalFieldsInfo);
>> > > > >> > > });
>> >
>> > > > >> > > I also posted the question to nhusers group(
>> > > [email protected])
>> > > > >> > > but I still not very sure how to implement this.
>> > > > >> > > I do appreciate if someone could help.
>> > > > >> > > Thanks.
>> > > > >> > > Silvia
>>
>>
>
> >
>


-- 
- Hudson
http://www.bestguesstheory.com
http://twitter.com/HudsonAkridge

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" 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/fluent-nhibernate?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to