Ich habe eine Personenentität, die eine Adresse als Wertobjekt enthält:
public Person()
{
WithTable("Person");
Id(x => x.Id);
Component<Address>(x => x.Address, a =>
{
a.Map(x => x.Address1);
a.Map(x => x.Address2);
a.Map(x => x.Address3);
a.Map(x => x.Town);
a.Map(x => x.Postcode);
});
}
In den NHibernate-Dokumenten heißt es, dass, wenn alle Eigenschaften eines Wertobjekts (Adresse1, Adresse2 usw.) Null sind, die gesamte Komponente als Null abgebildet wird (d. h. Person.Adresse ist Null). Dies gibt mir Probleme in Fällen, in denen alle Adressfelder null sind, weil in meinen Seiten, in denen ich haben könnte (ich bin tun ASP MVC):
<%= Html.TextBoxFor((x => x.Address.Address1))%>
Dies führt zu einer Null-Referenz-Ausnahme. Ich bin also auf der Suche nach einem sauberen Weg, um Adresse als ein neues Adresse()-Objekt statt null, wenn alle Felder leer sind, wenn ich eine Person aus der Datenbank laden, ohne es manuell zu tun. Ich habe die folgenden Ideen verworfen:
Nullprüfung in meiner Ansicht (igitt, schrecklich)
Datenbankfelder nicht löschbar machen (ich habe es mit einer alten Datenbank zu tun)
Hat jemand eine Idee?