Pergunta

Estou usando o seguinte mapeamento:

public class LoadMap : IAutoMappingOverride<Load> {
    public void Override(AutoMapping<Load> mapping) {
        mapping.HasMany(x => x.Bids).OptimisticLock.None();
        mapping.Version(x => x.Version);
    }
}

Mas quando tento criar a sessão, recebo a seguinte exceção:

Formatexception: a string 'nenhum' não é um valor booleano válido.

XmlschemavalidationException: o atributo 'otimista -bloqueio' é inválido - o valor 'nenhum' é inválido de acordo com seu tipo de dados 'http://www.w3.org/2001/xmlschema:boolean' - A string' None 'não é um valor booleano válido.

Estou usando o Nibernate 2.1.2.4000 e estava usando o Fluent Nibernate 1.0RTM, mas tentei a versão mais recente 636 apenas para ter certeza de que isso não foi corrigido recentemente ou algo assim.

Como uma nota rodapé, Caso eu esteja fazendo tudo isso errado, Eu gostaria de poder fazer alterações na lista .bids sem aumentar a versão. Eu vi um exemplo em Blog de Ayende Isso fez o que eu queria com propriedades.

Foi útil?

Solução

Eu acho que é um bug. Valores válidos para a propriedade otimista de bloqueio são verdadeiros | Falso, como você afirma em seu comentário. Parece que o Fluent Nibernate está definindo a propriedade para nenhuma, mas eu geraria o esquema XML para ter certeza.

Outras dicas

Como Jamie diz, parece um bug (ou falta de falta) no fluente Nibernate. Eu adicionei um hack para permitir a definição de falsos e verdadeiros no otimisticlock em Meu garfo github. Parece funcionar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top