Tengo un objeto de modelo de dominio que tiene propiedades de tipo System.DateTimeOffset. Estoy usando una base de datos que no admite este tipo de forma nativa, por lo que estoy planeando almacenarlo usando una columna de tipo 'datetime' y una de tipo 'smallint'.Uso de NHibernate ICompositeUserType con un tipo de valor
He estado buscando cómo mapear esto usando los componentes de NHibernate, y encontré que podría funcionar usando una instancia de ICompositeUserType. Sin embargo, al implementar la interfaz, me encontré con el método llamado "SetPropertyValue" que ostensiblemente establece una propiedad dentro del tipo. Como DateTimeOffset es un System.ValueType, el solo hecho de configurar una propiedad como esta no funcionará, ya que es inmutable (al menos, sin utilizar algún reflejo o código inseguro, que me gustaría evitar). Como el parámetro de instancia en SetPropertyValue no es 'ref', ¿cómo se usan instancias de ValueType como componentes en NHibernate?
Ok, es suficiente ... Estoy siguiendo hasta ahora. ¿Pero cómo vuelve su instancia 'dt' al modelo de dominio? – codekaizen
dt = component, acaba de convertir a DateTime. Podría reemplazarlo en todas partes con el componente ((DateTime)). El componente es lo que realmente se devuelve al modelo de dominio. – anonymous
No estoy seguro de si hay documentación de esto. Ni siquiera lo recuerdo y tuve que mirar el contexto en mi código. Creo que tuve que mirar el ejemplo que normalmente se proporciona con NHibernate (¿twostrings, creo?) Y aprender de eso (y obviamente olvidarlo una vez que haya terminado!) – anonymous