+1 for the same reason Paul said that it doesn't require changes to class map.


 


 

-----Original Message-----
From: Paul Batum <paul.ba...@gmail.com>
To: fluent-nhibernate@googlegroups.com
Sent: Sun, 11 Jan 2009 6:33 pm
Subject: [fluent-nhib] Re: Mapping private properties









+1

I really like how it looks, and I like how it means there are zero changes to 
class map this way. 

Paul Batum


On Mon, Jan 12, 2009 at 8:14 AM, Tuna Toksöz <tehl...@gmail.com> wrote:


Great idea, looks good to me.


Tuna Toksöz
http://tunatoksoz.com


Typos included to enhance the readers attention!









On Sun, Jan 11, 2009 at 10:57 PM, James Gregory <jagregory....@gmail.com> wrote:



Guys,



We've been quite regularily receiving requests and/or complaints about not 
being able to map private and protected properties. I think we all know why 
this isn't possible, and I think we're mostly in agreement that allowing this 
is kinda against the purpose of Fluent NHibernate; however, people still want 
it. I think it was Chad who suggested that we could supply some alternative 
methods that take strings as parameters, as a way to make it possible but not 
as intuitive as the lambda mappings (with the purpose of making people use the 
lambdas whenever possible, rather than seeing the lambda parameter and the 
string parameter and taking the one they know best - the string).







I had an idea of an alternative, and I've knocked up a few tests and it seems=2
0to work.




Map(Reveal.Property<Entity>("PrivatePropertyName"));




HasMany(Reveal.Property<Entity>("PrivateCollection"));







The Reveal in those statements is a static class, and the Property method takes 
a property name and a generic type parameter of the entity being mapped. It 
then does some expression magic and builds up an Expression<Func<Entity, 
object>> object. This essentially allows us to leave the mapping completely 
untouched. No overloads/alternatives for every method, no maintenance 
nightmare. If people want to use it, they're welcome to, but the default route 
is still the lambda expressions.







Any thoughts? I've tested this against Map and HasMany, and I haven't had any 
trouble, will test everything else before releasing though.




James

























 


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" group.
To post to this group, send email to fluent-nhibernate@googlegroups.com
To unsubscribe from this group, send email to 
fluent-nhibernate+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/fluent-nhibernate?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to