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' 属性が無効です - 値 'none' はそのデータ型によると無効です ' http://www.w3.org/2001/XMLSchema:boolean ' - 文字列 'none' は有効なブール値。]

私はNHibernate 2.1.2.4000を使用しており、Fluent NHibernate 1.0RTMを使用していましたが、これが最近修正されたものではないことを確認するために、最新のビルド636を試しました。

補足として、これをすべて間違っている場合に備えて、Version をインクリメントせずに .Bids リストを変更できるようにしたいと考えています。Ayende のブログで、プロパティで私が望んでいたことを行った例を見ました。

4

2 に答える 2

3

バグだと思います。コメントで述べているように、optimistic-lock プロパティの有効な値は true|falseです。Fluent NHibernate はプロパティを none に設定しているようですが、念のために XML スキーマを生成します。

于 2010-04-04T12:52:57.053 に答える
1

ジェイミーが言うように、Fluent NHibernateのバグ(または欠落している機能)のように見えます。githubフォークのOptimisticLockでFalseとTrueを設定できるようにするハックを追加しました。うまくいくようです。

于 2011-03-23T08:17:58.283 に答える