3

我正在使用以下映射:

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

但是当我尝试创建会话时,出现以下异常:

[FormatException:字符串 'none' 不是有效的布尔值。]

[XmlSchemaValidationException:'optimistic-lock' 属性无效-根据其数据类型' http://www.w3.org/2001/XMLSchema:boolean ',值'none'无效-字符串'none'不是有效的布尔值。]

我正在使用 NHibernate 2.1.2.4000 并且我正在使用 Fluent NHibernate 1.0RTM,但尝试了最新版本 636 只是为了确保这不是最近修复的问题或其他问题。

附带说明一下,如果我做错了,我希望能够在不增加版本的情况下对 .Bids 列表进行更改。我在Ayende 的博客上看到了一个例子,它用属性做了我想要的。

4

2 回答 2

3

我认为这是一个错误。正如您在评论中所述,乐观锁定属性的有效值为 true|false 。Fluent NHibernate 似乎将该属性设置为 none,但我会生成 XML 模式以确保。

于 2010-04-04T12:52:57.053 回答
1

正如 Jamie 所说,这看起来像是 Fluent NHibernate 中的一个错误(或缺少的功能)。我添加了一个 hack 以允许在我的 github fork中的 OptimisticLock 上设置 False 和 True 。它似乎工作。

于 2011-03-23T08:17:58.283 回答