NHibernate заставляет UPDATE-заявление, когда я получаю доступ к ребенку - PullRequest
0 голосов
/ 01 ноября 2009

У меня есть отношения между родителями и детьми.

Моя проблема в том, что когда я получаю доступ к дочернему объекту и затем сбрасываю сеанс, NHibernate автоматически ОБНОВЛЯЕТ дочерние объекты с теми же значениями (без различий).

Это выдаст обновление ребенка:

Response.Write(Profile.ProfilePicture.Filename);
_session.Flush();

Кто-нибудь может понять, почему это происходит? Я, конечно, не хочу обновлять ребенка в этом сценарии.

Вот мое отображение спящего режима:

Родитель:

<class name="Business.Domain.Profile, Business" table="Profiles">  
    <id name="Id" type="int">
      <generator class="native" />
    </id>
    <property name="Username" type="string" length="100" />
    <property name="Password" type="string" length="200" />
    <property name="Email" type="string" length="150" />
    <property name="CreatedDate" generated="insert" />
    <property name="LastLoginDate" />
    <property name="LastActivityDate" />
    <property name="Firstname" type="string" length="50" />
    <property name="Lastname" type="string" length="50" />
    <property name="Fullname" formula="Firstname + ' ' + Lastname" />
    <property name="Gender" not-null="true" type="int" />
    <property name="Description" not-null="false" type="string" />

    <many-to-one
      name="ProfilePicture" 
      column="ProfilePictureId" 
      class="Business.Domain.Picture, Business" />

    <set name="Pictures" generic="true" inverse="true" cascade="all-delete-orphan">
      <key column="ProfileId" />
      <one-to-many class="Business.Domain.Picture, Business"/>
    </set>
  </class>

Ребенок:

  <class name="Business.Domain.Picture, Avando.Business" table="Pictures">
    <id name="Id" type="int">
      <generator class="native" />
    </id>
    <property name="Filename" type="string" />
    <property name="CreatedDate" type="DateTime" generated="insert" />

    <many-to-one
      name="Profile"
      column="ProfileId"
      class="Business.Domain.Profile, Business"
      not-null="true" />    
  </class>

1 Ответ

0 голосов
/ 01 ноября 2009

Я разобрался в этом сам.

Обновление произошло из-за свойства:

На самом деле перечисление:)

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