Hi all,
I have the following problem. I've defined 3 classes by using the following
structure:
public class ReducedModalityReductionDataSet : Entity<Guid>
{
public ReducedModalityReductionDataSet()
{
ReducedModalityReductionDataSetItems = new
Iesi.Collections.Generic.HashedSet<ReducedModalityReductionDataSetItem>();
}
public virtual System.Int32 DataSetNumber { get; set; }
public virtual System.String DataSetName { get; set; }
public virtual System.String Company { get; set; }
public virtual System.Byte Status { get; set; }
public virtual ISet<ReducedModalityReductionDataSetItem>
ReducedModalityReductionDataSetItems { get; protected set; }
public virtual void
AddReductionDataSetItem(ReducedModalityReductionDataSetItem reductionItem)
{
reductionItem.ReducedModalityReductionDataSet = this;
ReducedModalityReductionDataSetItems.Add(reductionItem);
}
}
public class ReducedModalityReductionDataSetItem
{
public ReducedModalityReductionDataSetItem()
{
ReducedModalityReductionDataSetPeriods = new
Iesi.Collections.Generic.HashedSet<ReducedModalityReductionDataSetPeriod>();
}
public virtual System.Guid Id { get; set; }
public virtual System.String Cuil { get; set; }
public virtual Nullable<System.DateTime> FechaAlta { get; set; }
public virtual System.String Modalidad { get; set; }
public virtual ReducedModalityReductionDataSet
ReducedModalityReductionDataSet { get; set; }
public virtual ISet<ReducedModalityReductionDataSetPeriod>
ReducedModalityReductionDataSetPeriods { get; protected set; }
public virtual void
AddPeriod(ReducedModalityReductionDataSetPeriod period)
{
period.ReducedModalityReductionDataSetItem = this;
ReducedModalityReductionDataSetPeriods.Add(period);
}
}
public class ReducedModalityReductionDataSetPeriod : ComponentBase
{
public virtual System.Int32 MonthNumber { get; set; }
public virtual System.String MonthYear { get; set; }
public virtual System.String ReductionValue { get; set; }
public virtual ReducedModalityReductionDataSetItem
ReducedModalityReductionDataSetItem { get; set; }
public override bool Equals(object entity)
{
if (entity == null)
return false;
if (ReferenceEquals(this, entity))
return true;
return false;
}
public override int GetHashCode()
{
return this.MonthNumber.GetHashCode() +
this.MonthYear.GetHashCode() +
this.ReductionValue.GetHashCode();
}
}
In the ReducedModalityReductionDataSetItem class I have defined a
collection of the ReducedModalityReductionDataSetPeriod class which is
defined as component in the hbm file:
<class name="ReducedModalityReductionDataSetItem"
table="ReducedModalityReductionDataSetItem" schema="dbo"> <id
name="Id" access="property" column="Id"> <generator
class="assigned" /> </id>
<property name="Cuil" type="System.String" column="Cuil" />
<property name="FechaAlta" type="System.DateTime" column="FechaAlta" />
<property name="Modalidad" type="System.String" column="Modalidad" />
<many-to-one name="ReducedModalityReductionDataSet"
class="ReducedModalityReductionDataSet" column="DataSet_Id" />
<set name="ReducedModalityReductionDataSetPeriods"
table="ReducedModalityReductionDataSetPeriod" lazy="true"
order-by="MonthNumber"> <key column="DataSetItem_Id" />
<composite-element
class="ReducedModalityReductionDataSetPeriod">
<parent name="ReducedModalityReductionDataSetItem" />
<property name="MonthNumber" type="System.Int32" column="MonthNumber"
not-null="true" /> <property name="MonthYear"
type="System.String" column="MonthYear" not-null="true" />
<property name="ReductionValue" type="System.String"
column="ReductionValue" not-null="true" /> </composite-element>
</set> </class>
The data for these classes are obtained from Excel files. When selecting
multiple files, the data of the first of them are persisted very well. When
reading the second file, I see in the log file (configured by log4net) many
DELETE operations on the ReducedModalityReductionDataSetPeriod table (which
contains the data for the component collection).
Log file extract:
2013-05-23 09:48:19,715 [PayrollAppClientThread] DEBUG NHibernate.SQL [(null)]
-
DELETE
FROM
ReducedModalityReductionDataSetPeriod
WHERE
DataSetItem_Id = @p0
AND MonthNumber = @p1
AND MonthYear = @p2
AND ReductionValue = @p3;
@p0 = cd7ac39f-fa74-4571-abf3-7a2ec1b7a363 [Type: Guid (0)], @p1 = 2
[Type: Int32 (0)], @p2 = 'FEB-13' [Type: String (4000)], @p3 = '201' [Type:
String (4000)]
2013-05-23 09:48:19,828 [PayrollAppClientThread] DEBUG NHibernate.SQL [(null)]
-
DELETE
FROM
ReducedModalityReductionDataSetPeriod
WHERE
DataSetItem_Id = @p0
AND MonthNumber = @p1
AND MonthYear = @p2
AND ReductionValue = @p3;
@p0 = cd7ac39f-fa74-4571-abf3-7a2ec1b7a363 [Type: Guid (0)], @p1 = 3
[Type: Int32 (0)], @p2 = 'MAR-13' [Type: String (4000)], @p3 = '201' [Type:
String (4000)]
2013-05-23 09:48:19,921 [PayrollAppClientThread] DEBUG NHibernate.SQL [(null)]
-
DELETE
FROM
ReducedModalityReductionDataSetPeriod
WHERE
DataSetItem_Id = @p0
AND MonthNumber = @p1
AND MonthYear = @p2
AND ReductionValue = @p3;
@p0 = cd7ac39f-fa74-4571-abf3-7a2ec1b7a363 [Type: Guid (0)], @p1 = 4
[Type: Int32 (0)], @p2 = 'ABR-13' [Type: String (4000)], @p3 = '201' [Type:
String (4000)]
Why is it happening? Do I need to do an additional configuration?
I hope you can help me.
Thanks in advanced.
--
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/nhusers?hl=en-US.
For more options, visit https://groups.google.com/groups/opt_out.