Nhibernate <version>функция не работает - PullRequest
0 голосов
/ 23 июля 2010

Я только начал работать с NHibernate.До сих пор находили это довольно хорошим, но столкнулись с проблемой, которую я не могу решить.Любая помощь будет принята с благодарностью.

Я пытаюсь использовать функцию «версия», чтобы помочь реализовать оптическую блокировку.Ниже мой файл сопоставления и часть кода из связанного класса.Моя проблема в том, что независимо от того, сколько раз я изменяю какое-либо поле, столбец «Версия» в базе данных не обновляется.

Мой файл сопоставления:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                   namespace="MyTest"
                   assembly ="MyTest">
  <class name="Project" table="dbo.M_Project">
    <id name="ProjectId" type="Int32" unsaved-value="null">
      <column name="ProjectId" sql-type="int" not-null="true" unique="true" />
      <generator class="native" />
    </id>
    <version name="Version" column="Version"/>
    <property name="ProjectName" type="String">
      <column name="ProjectName" length="100" sql-type="nvarchar" not-null="true"/>
    </property>
    <property name="Updated" type="bool">
      <column name="Updated" sql-type="bit" not-null="true"/>
    </property>
    <property name="NoOfItemsWithExceptions" type="int">
      <column name="NoOfItemsWithExc" sql-type="int" not-null="true"/>
    </property>
    <property name="MenuState" type="int">
      <column name="MenuState" sql-type="int" not-null="true"/>
    </property>
    <property name="Initialized" type="bool">
      <column name="Initialized" sql-type="bit" not-null="true"/>
    </property>
    <property name="InventoryRun" type="bool">
      <column name="InventoryRun" sql-type="bit" not-null="true"/>
    </property>
    <property name="ProductionForecastRun" type="bool">
      <column name="ProductionForecastRun" sql-type="bit" not-null="true"/>
    </property>
    <property name="MonthlyUpdate" type="bool">
      <column name="MonthlyUpdate" sql-type="bit" not-null="true"/>
    </property>
    <bag name="SKUList" table="dbo.P_SKU" inverse="true" lazy="true" cascade="save-update">
      <key column="ProjectId" />
      <one-to-many
        class="SKU"/>
    </bag>
  </class>
</hibernate-mapping>

Связанное свойство версии:

    private int _version;
    public virtual int Version
    {
        get { return _version; }
        set { _version = value; }
    }

Спасибо!

1 Ответ

0 голосов
/ 24 июля 2010

Возможно, для простоты необходимо установить атрибут optimistic-lock (теоретически это не так).Например,

<class name="Project" table="dbo.M_Project" optimistic-lock="dirty">

Здесь у вас есть больше информации об этом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...