Fluido NHibernate OptimisticLock.None () hace que “ 'ninguna' La cadena no es un valor booleano válido.”
-
24-09-2019 - |
Pregunta
Estoy usando el siguiente mapeo:
public class LoadMap : IAutoMappingOverride<Load> {
public void Override(AutoMapping<Load> mapping) {
mapping.HasMany(x => x.Bids).OptimisticLock.None();
mapping.Version(x => x.Version);
}
}
Pero cuando trato de crear la sesión me sale el siguiente excepción:
[FormatException: La cadena 'ninguno' no es un valor booleano válido.]
[XmlSchemaValidationException: El atributo 'optimista-lock' no es válido - El valor 'none' es inválida de acuerdo a su tipo de datos ' http://www.w3.org/2001/XMLSchema:boolean ' - La cadena 'ninguno' no es un valor booleano válido]
.
Estoy usando NHibernate 2.1.2.4000 y yo estaba usando Fluido NHibernate 1.0RTM, pero probamos la versión más reciente 636 sólo para estar seguro de que esto no es algo que se fijó recientemente o algo.
Como nota al margen, en caso de que estoy haciendo esto mal , me gustaría ser capaz de hacer cambios en la lista .Bids sin incrementar versión. Vi un ejemplo de de Ayende el blog que hice lo que quería con propiedades.
Solución
Creo que es un error. los valores válidos para la propiedad optimista de bloqueo son true | false , a medida que el estado en su comentario. Parece que Fluido NHibernate está estableciendo la propiedad a nadie sino que generaría el esquema XML para estar seguro.
Otros consejos
Como Jamie dice, se ve como un error (o característica que falta) en Fluido NHibernate. He añadido un truco para permitir el establecimiento de falso y verdadero en OptimisticLock en mi github tenedor . Parece que funciona.