I agree its unneeded; I was just asking to ensure I correctly understood
what you were proposing ;)

+1 for this short-cut notation.

Steve Bohlen
[email protected]
http://blog.unhandled-exceptions.com
http://twitter.com/sbohlen


On Thu, Apr 28, 2011 at 11:53 AM, Fabio Maulo <[email protected]> wrote:

> I can implement that restriction even if unneeded... ;)
> The code used by this method
> public void Property<TProperty>(Expression<Func<TEntity, TProperty>>
> property)
> {
> MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);
>
> will be the same code executed after this
> public void Property<TProperty>(string propertyOrFieldName)
> {
> MemberInfo member =
> typeof(TEntity).GetPropertyOfFieldMatchingName(propertyOrFieldName)
> if(member == null)
> {
> throw new ArgumentOutOfRangeException("propertyOrFieldName", "the property
> or field........");
> }
>
> On Thu, Apr 28, 2011 at 11:57 AM, Stephen Bohlen <[email protected]>wrote:
>
>> In this case, the "Something" string might *either* refer to a private
>> field or a private/protected property, is that right --?
>>
>> Steve Bohlen
>> [email protected]
>> http://blog.unhandled-exceptions.com
>> http://twitter.com/sbohlen
>>
>>
>>
>> On Thu, Apr 28, 2011 at 10:24 AM, Richard Brown (gmail) <
>> [email protected]> wrote:
>>
>>>   +1 for strings ... it also enables using reflection based usage on the
>>> API.
>>>
>>>   *From:* Fabio Maulo <[email protected]>
>>> *Sent:* Thursday, April 28, 2011 12:20 PM
>>> *To:* [email protected]
>>> *Subject:* [nhibernate-development] Mapping by-code protected/private
>>> members
>>>  To explicit map private field I done this
>>> ca.Property(ForClass<MyClass>.Field("something"), map =>
>>> map.Length(150));
>>>
>>> To explicit map private/protected properties I should do something like
>>> this
>>> ca.Property(ForClass<MyClass>.Property("Something"), map =>
>>> map.Length(150));
>>>
>>> The matter is that at the end, if we don't want an "invasion" to the
>>> users domain-model (and I would always avoid it), we end with a string
>>> representing the private/protected member-name.
>>> Using the ConventionModelMapper there is "no problem" if the user can
>>> accept to write the mapping catching that member in the BeforeMapProperty
>>> event (or similar for others relations).
>>>
>>> I would introduce a short-cut
>>> ca.Property("Something", map => map.Length(150));
>>>
>>> Thoughts ?
>>>
>>> --
>>> Fabio Maulo
>>>
>>>
>>
>
>
> --
> Fabio Maulo
>
>

Reply via email to