C# Fluent NHibernate OptimisticLock.None()导致;字符串';无';不是有效的布尔值;
我正在使用以下映射:C# Fluent NHibernate OptimisticLock.None()导致;字符串';无';不是有效的布尔值;,c#,nhibernate,fluent-nhibernate,xml-validation,optimistic-locking,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); } } publi
public class LoadMap : IAutoMappingOverride<Load> {
public void Override(AutoMapping<Load> mapping) {
mapping.HasMany(x => x.Bids).OptimisticLock.None();
mapping.Version(x => x.Version);
}
}
public类LoadMap:IAutoMappingOverride{
公共无效替代(自动映射){
mapping.HasMany(x=>x.Bids).OptimisticLock.None();
mapping.Version(x=>x.Version);
}
}
但当我尝试创建会话时,会出现以下异常:
[格式异常:字符串“none”不是有效的布尔值。]
[XmlSchemaValidationException:“乐观锁”属性无效-值“无”根据其数据类型“”无效-字符串“无”不是有效的布尔值。]
我使用的是NHibernate 2.1.2.4000,我使用的是Fluent NHibernate 1.0RTM,但我尝试了最新版本636,只是为了确保这不是最近修复的东西或其他东西
作为旁注,如果我做得完全错误,我希望能够在不增加版本的情况下对.Bids列表进行更改。我看到一个例子,它实现了我对属性的期望。我认为这是一个bug,正如你在评论中所说。看起来Fluent NHibernate正在将属性设置为none,但我会生成XML模式以确保这一点。正如Jamie所说,Fluent NHibernate中似乎有一个bug(或缺少的功能)。我添加了一个允许在OptimisticLock中设置False和True的hack。这似乎有效。我开始认为地图应该有一个乐观的锁=真|假。我很难在网上找到证实这一点的例子。在这种情况下,为什么Fluent NHibernate的有很多使用.OptimisticLock.None()而不是.Not.OptimisticLock()?是的,XML中的值是“None”而不是“false”。