Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 удаление из дочерней коллекции NHibernate  [new]
kmaw
Member [заблокирован]

Откуда: бобруйск
Сообщений: 24786
удаляю из коллекции

o.ListChildren


потом сохраняю

.BeginTransaction();
.SaveOrUpdate(o);
.CommitTransaction();


удаление записей из БД в связанной с o таблицей не происходит. добавление/обновление норм. в чем проблема может быть?
спасибо
30 ноя 12, 21:14    [13559037]     Ответить | Цитировать Сообщить модератору
 Re: удаление из дочерней коллекции NHibernate  [new]
SolYUtor
Member

Откуда:
Сообщений: 948
kmaw,

какой Cascade стоит на коллекции?
30 ноя 12, 22:19    [13559404]     Ответить | Цитировать Сообщить модератору
 Re: удаление из дочерней коллекции NHibernate  [new]
kmaw
Member [заблокирован]

Откуда: бобруйск
Сообщений: 24786
родитель
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
	<class name="ContractWebService.Domain.Organization, ContractWebService" table="t_Organization" lazy="true">
		<id name="Id" column="Id" unsaved-value="0">
      <generator class="sequence">
        <param name="sequence">SQ_GLOBAL</param>
      </generator>
		</id>
    <property insert="false" update="false" type="DateTime" name="DateInsert" column="Date_Insert" />
    <property insert="false" type="DateTime" name="DateUpdate" column="Date_Update" />
    
    <property name="Name" column="Name" />

    
    <bag name="Supports" table="t_Support" cascade="all" inverse="true" order-by="DATE_END">
      <key column="ID_ORGANISATION" />
      <one-to-many class="ContractWebService.Domain.Support, ContractWebService" />
    </bag>
    
  </class>
</hibernate-mapping>

дочерние записи
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  <class name="ContractWebService.Domain.Support, ContractWebService" table="t_Support" lazy="true">
    <id name="Id" column="Id" unsaved-value="0">
      <generator class="sequence">
        <param name="sequence">SQ_GLOBAL</param>
      </generator>
    </id>
    <property insert="false" update="false" type="DateTime" name="DateInsert" column="Date_Insert" />
    <property insert="false" type="DateTime" name="DateUpdate" column="Date_Update" />
    

    <many-to-one name="Organization" column="ID_ORGANISATION"
      class="ContractWebService.Domain.Organization, ContractWebService" not-null="true" />
    
    <property name="DateEnd" type="DateTime" column="DATE_END"/>
    <property name="Cost" column="COST"/>
    <property name="DecisNote" column="DECIS_NOTE"/>
    
    
  </class>
</hibernate-mapping>
1 дек 12, 10:46    [13560967]     Ответить | Цитировать Сообщить модератору
 Re: удаление из дочерней коллекции NHibernate  [new]
SolYUtor
Member

Откуда:
Сообщений: 948
kmaw,

поставь в родителе cascase=all,delete-orphan.
1 дек 12, 15:46    [13561617]     Ответить | Цитировать Сообщить модератору
 Re: удаление из дочерней коллекции NHibernate  [new]
kmaw
Member [заблокирован]

Откуда: бобруйск
Сообщений: 24786
спасибо. ваш совет помог. а я думал, что cascade="all", это типа "Все включено", в т.ч. "delete-orphan"
1 дек 12, 16:55    [13561813]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить