Can we map a property that has a protected (or even private) setter.
Do we have to change the naming strategy and have a separate member
for the property? In the documentation I read: "Properties need not be
declared public - NHibernate can persist a property with an internal,
protected, protected internal or private visibility." so what exactly
does that mean?
Here is an example class:
public class Candidate
{
virtual public string Number { get; set; }
virtual public DateTime AddedOn { get; protected set; }
virtual public Template Template { get; set; }
virtual public string ZoneName { get; set; }
virtual public DateTime LastActivity { get; set; }
protected Candidate()
{
}
public Candidate
(string number, TemplateType candidateFor, DateTime
addedOn, string zoneName)
{
this.Number = number;
this.AddedOn = addedOn;
this.ZoneName = zoneName;
}
public override bool Equals(object obj)
{
Candidate that = obj as Candidate;
if (that == null) return false;
return this.Number.Equals(that.Number);
}
public override int GetHashCode()
{
return this.Number.GetHashCode();
}
}
and here is an example mapping:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="MNP_Contracts" namespace="MNP_Contracts">
<class name="Candidate" table="Candidates" dynamic-update="false"
lazy="false">
<id name="Number" column="Number">
<generator class="assigned" />
</id>
<property name="AddedOn" column="AddedOn" />
<property name="ZoneName" column="ZoneName" />
<property name="LastActivity" column="LastActivity" />
<many-to-one name="Template" column="TemplateID" />
</class>
</hibernate-mapping>
the AddedOn property is not being set when NHibernate hydrates the
object.
--
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.