Usando NHibernate ICompositeUserType con un tipo de valor

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, así que planeo almacenarlo usando una columna de tipo 'datetime' y una de tipo 'smallint'.

He investigado cómo mapear esto usando componentes NHibernate, y encontré que podría funcionar usando una instancia de ICompositeUserType. Sin embargo, al implementar la interfaz, me he topado con el método llamado "SetPropertyValue", que aparentemente establece una propiedad dentro del tipo. Dado que DateTimeOffset es un System.ValueType, solo establecer una propiedad como esta no funcionará ya que es inmutable (al menos, sin usar un código de reflexión o inseguro, que me gustaría evitar). Dado que el parámetro de instancia en SetPropertyValue no es 'ref', ¿cómo se utilizan las instancias de ValueType como componentes en NHibernate?

Respuestas a la pregunta(3)

Su respuesta a la pregunta