Fluent NHibernate约定:OptimisticLock.Is(x=>;x.Version())不';行不通

Fluent NHibernate约定:OptimisticLock.Is(x=>;x.Version())不';行不通,nhibernate,fluent-nhibernate,fluent-nhibernate-mapping,Nhibernate,Fluent Nhibernate,Fluent Nhibernate Mapping,我在使用OptimisticLock作为惯例时遇到问题。 然而,在单个类映射中使用OptimisticLock可以很好地工作。它抛出过时的状态对象异常 与数据库中的表相对应的每个类都有一个DateTime类型的属性(对应于表中的一列),我正试图使用它来使用OptimisticLock.Version()进行锁定 只有当我在每个类映射中使用它时,它才起作用,我不想写那么多类映射,而是想使用自动映射 它在类映射中是这样工作的 Version(x=>x.UpdTs).Column(“UPD_TS”);

我在使用OptimisticLock作为惯例时遇到问题。 然而,在单个类映射中使用OptimisticLock可以很好地工作。它抛出过时的状态对象异常

与数据库中的表相对应的每个类都有一个DateTime类型的属性(对应于表中的一列),我正试图使用它来使用OptimisticLock.Version()进行锁定

只有当我在每个类映射中使用它时,它才起作用,我不想写那么多类映射,而是想使用自动映射

它在类映射中是这样工作的
Version(x=>x.UpdTs).Column(“UPD_TS”);
OptimisticLock.Version()

所以,我开始使用下面的约定,但它不起作用。 我试着设置日期等等。似乎没有什么对我有用。
请帮忙

以下是我使用约定使其工作的方法:

/// <summary>
/// Class represents the Convention which defines which Property/Column serves as a part of the Optimistic Locking Mechanism.
/// </summary>
public class VersionConvention : IVersionConvention, IVersionConventionAcceptance
{
    public void Accept(IAcceptanceCriteria<IVersionInspector> criteria)
    {
        criteria.Expect(x => x.Name == "%COLUMN_NAME%");
    }

    /// <summary>
    /// Method applies additional overrides to the <see cref="IVersionInstance"/>
    /// </summary>
    /// <param name="instance"><see cref="IVersionInstance"/></param>
    public void Apply(IVersionInstance instance)
    {            
        instance.Column("%COLUMN_NAME%");
    }
}
/// <summary>
/// Class represents the Convention which defines which Property/Column serves as a part of the Optimistic Locking Mechanism.
/// </summary>
public class VersionConvention : IVersionConvention, IVersionConventionAcceptance
{
    public void Accept(IAcceptanceCriteria<IVersionInspector> criteria)
    {
        criteria.Expect(x => x.Name == "%COLUMN_NAME%");
    }

    /// <summary>
    /// Method applies additional overrides to the <see cref="IVersionInstance"/>
    /// </summary>
    /// <param name="instance"><see cref="IVersionInstance"/></param>
    public void Apply(IVersionInstance instance)
    {            
        instance.Column("%COLUMN_NAME%");
    }
}
OptimisticLock.Is(x => x.Version();