Hola a todos!
Tengo una relación many-to-many de la siguiente manera:
Operation_Place <=> Operation_Place_Resource <=> Resource
*Entidades:*
public class OperationPlace : BaseEntityEditable
{
public virtual String Name { get; set; }
public virtual String Description { get; set; }
public virtual Char Enabled { get; set; }
public virtual IList<Resource> Resources { get; set; }
public OperationPlace()
{
Resources = new List<Resource>();
}
}
public class Resource : BaseEntityEditable
{
public virtual String Name { get; set; }
}
*Maps:*
<class name="OperationPlace" table="S_Operation_Place" lazy="false"
dynamic-update="true">
<id name="Id" column="Id_Operation_Place" type="Int64">
<generator class="Geraes.GLib.GDomainBasis.CustomTableHiLoGenerator,
GLib.GDomainBasis" />
</id>
<property name="Name" column="Name" type="String" length="20"
not-null="true" />
<property name="Description" column="Description" type="String"
length="60" not-null="true" />
<property name="Enabled" column="Enabled" type="Char" not-null="true" />
<idbag name="Resources" table="S_Operation_Place_Resource"
generic="true" lazy="false" cascade="save-update" fetch="join">
<collection-id type="Int64" column="Id_Operation_Place_Resource">
<generator
class="Geraes.GLib.GDomainBasis.CustomTableHiLoGenerator,
GLib.GDomainBasis" />
</collection-id>
<key column="Id_Operation_Place" />
<many-to-many column="Id_Resource" class="Resource"/>
</idbag>
</class>
<class name="Resource" table="S_Resource" lazy="false"
dynamic-update="true">
<id name="Id" column="Id_Resource" type="Int64">
<generator class="Geraes.GLib.GDomainBasis.CustomTableHiLoGenerator,
GLib.GDomainBasis" />
</id>
<property name="Name" column="Name" type="String" length="60"
not-null="false" />
</class>
Mi aplicación utiliza NHibernate 3.2 y unhAddins.
Al agregar un nuevo recurso en la lista de los resources existentes en el
OperationPlaceobjeto, NHibernate borra todos los resources existentes.
El comportamiento que espero es sólo la inclusión del nuevo resource.
Debido a que el NH lleva a cabo la exclusión de la lista de los resources
antes de la inclusión del nuevo resources?
Gracias!
Alexandre
Log:
10:31:43.777 DEBUG [SqlStatementLogger.LogCommand] nHibernate:
DELETE
FROM
S_Operation_Place_Resource
WHERE
Id_Operation_Place_Resource = :p0;
:p0 = 10910 [Type: Int64 (0)]
10:31:44.189 DEBUG [OracleDataClientBatchingBatcher.AddToBatch] nHibernate:
Adding to batch:
INSERT
INTO
S_Operation_Place_Resource
(Id_Operation_Place, Id_Operation_Place_Resource, Id_Resource)
VALUES
(:p0, :p1, :p2);
:p0 = 10504 [Type: Int64 (0)], :p1 = 11110 [Type: Int64 (0)], :p2 = 10
[Type: Int64 (0)]
10:31:44.206 DEBUG [OracleDataClientBatchingBatcher.AddToBatch] nHibernate:
Adding to batch:
INSERT
INTO
S_Operation_Place_Resource
(Id_Operation_Place, Id_Operation_Place_Resource, Id_Resource)
VALUES
(:p0, :p1, :p2);
:p0 = 10504 [Type: Int64 (0)], :p1 = 11111 [Type: Int64 (0)], :p2 = 1
[Type: Int64 (0)]
10:31:44.220 DEBUG [OracleDataClientBatchingBatcher.AddToBatch] nHibernate:
Adding to batch:
INSERT
INTO
S_Operation_Place_Resource
(Id_Operation_Place, Id_Operation_Place_Resource, Id_Resource)
VALUES
(:p0, :p1, :p2);
:p0 = 10504 [Type: Int64 (0)], :p1 = 11112 [Type: Int64 (0)], :p2 = 11
[Type: Int64 (0)]
--
Para escribir al Grupo, hágalo a esta dirección:
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano