que tienen una entidad persona que contiene una dirección como un objeto de valor:objetos de valor nulo en NHibernate
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);
});
}
Se afirma en los documentos de NHibernate que si todas las propiedades de un objeto de valor (Dirección 1, Dirección 2, etc) son null, todo el componente se mapeará como nulo (es decir, Person.Address será nulo). Este soy yo dando problemas en los casos en todos los campos de dirección son nulas porque en mis páginas en las que pueda tener (que estoy haciendo ASP MVC):
<%= Html.TextBoxFor((x => x.Address.Address1))%>
Esto rompe con una excepción de referencia nula. Así que estoy buscando una forma limpia de configurar la dirección como un nuevo objeto Address() en lugar de null si todos los campos están vacíos cuando cargo una persona desde la base de datos sin hacerlo manualmente. He descartado la siguientes ideas:
Haciendo comprobación nula en mi punto de vista (yuk, horrible)
Realización de campos de bases de datos no-anulables (estoy tratando con una base de datos heredada)
Cualquier persona alguna idea ?
Se pone muy feo tan pronto como realmente necesitas editar la dirección en la interfaz de usuario, no solo mostrarlo, ¿eh? – alex
Sí, tengo una mejor sugerencia? –
¡Buenas ideas, gracias! Modificar el acceso a la propiedad Dirección asignada real para permitir obtener y establecer como de costumbre, pero utilizando su verificación nula en el obtener "Dirección? Nueva dirección();" trabajos. Ahora puedo cargar y editar direcciones incluso si son nulas, sin modificar mi vista, y la hibernación no se confunde. –