Отображение коллекции NHibernate: вместо обновления она удаляется и вставляется - PullRequest
1 голос
/ 01 апреля 2011

Я не уверен, как сопоставить коллекцию для обновления.У меня есть 2 таблицы:

  • Object - имеет составной PK 3 дюйма
  • ObjectAliases - имеет FK для объекта и nvarchar PK для имени, очевидно, имя уникально

У объекта может быть много псевдонимов, но имя псевдонима уникально для каждого объекта.

Поэтому мне нужно перечислить псевдонимы в моем объекте, поэтому я сделал:

public virtual IList<string> Aliases { get; set; }

иМое отображение:

<bag name="Aliases" table="Aliases" cascade="all-delete-orphan" lazy="true">
  <key>
    <column name="OtpadId_Djelatnost" sql-type="nvarchar"/>
    <column name="OtpadId_Proces" sql-type="nvarchar"/>
    <column name="OtpadId_Vrsta" sql-type="nvarchar"/>
  </key>
  <element column="Ime" type="String"/>
</bag>

Я могу создавать и удалять объекты из списка псевдонимов без проблем, Nhibernate вставит и удалит штраф.Но как я могу переименовать псевдоним?У меня есть FK для псевдонима по имени, и когда я переименовываю псевдоним, я хочу, чтобы NHibernate сделал sql UPDATE, поэтому UPDATE CASCADE выполняется на всех FK, ссылаясь на новое имя.1021 * Nhibernate попытается сделать вставку вместо ОБНОВЛЕНИЯ ... как я могу сделать ОБНОВЛЕНИЕ?

Спасибо всем.

1 Ответ

1 голос
/ 01 апреля 2011

Сумка является неупорядоченной и неиндексированной коллекцией (от http://www.nhforge.org/doc/nh/en/index.html#collections-mapping). Так что я предполагаю, что это происходит из-за того факта, что nhibernates удаляет воссоздающий свой контент.

...