You can name your property in the mapping CustomerId like you do in
your class and use camelcase-field access.

On Fri, Aug 7, 2009 at 2:02 PM, wesley<[email protected]> wrote:
>
> Hi all,
>
> I'm currently using several classes with read-only properties (with a
> getter only). These properties are pre-defined or calculated values,
> which shouldn't be changed by my programm.
>
> A example class looks as follows:
> public class Customer {
>  private Guid customerId;
>  public Guid CustomerId {
>    get { return customerId; }
>  }
> }
>
> And my mapping file looks as follows (very simplified):
> <class name="Customer" table="customer">
>  <property name="customerId" column="customerId" type="Guid"
> access="field" />
> </class>
>
> Now I am working with LINQ to select my data with nHibernate. In
> general the selects works fine, but I can't use any Where-clause,
> because LINQ cannot resolve my public properties (Error Message "Could
> not resolve property").
> var query = from c in nhSession.Linq<Customer>()
>    where c.CustomerId = customerId
>    select c;
>
> The exception seems correct for me, because in the mapping file I
> specified my private field "customerId". LINQ on the other hand tries
> to resolve my public property "CustomerId" which is not specified in
> my mapping file.
>
> My questions is now: Is the combination of field-mapping and LINQ
> possible or are these both techniques are contradictory? Do I have to
> use public properties (with full access getter/setter) for my mapping
> to use the benefits of LINQ? Or is there a trick to use LINQ with my
> private fields?
>
> Thanks
> -wesley
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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