流畅的NHibernate OptimisticLock.None()导致“字符串'none'不是有效的布尔值。”

时间:2010-04-04 04:57:30

标签: c# nhibernate fluent-nhibernate xml-validation optimistic-locking

我正在使用以下映射:

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'属性无效 - 值'none'根据其数据类型'http://www.w3.org/2001/XMLSchema:boolean'无效 - 字符串'none'不是有效的布尔值。]

我正在使用NHibernate 2.1.2.4000而我正在使用Fluent NHibernate 1.0RTM,但尝试使用最新版本636只是为了确保这不是最近修复过的东西。

作为旁注,如果我这样做是错误的,我希望能够在不增加版本的情况下对.Bids列表进行更改。我在Ayende's blog上看到了一个关于我想要的属性的例子。

2 个答案:

答案 0 :(得分:3)

我认为这是一个错误。 Valid values for the optimistic-lock property are true|false,正如您在评论中所述。似乎Fluent NHibernate将属性设置为none,但我会生成XML模式以确定。

答案 1 :(得分:1)

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