我正在使用以下映射:
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上看到了一个关于我想要的属性的例子。
答案 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。它似乎有效。