我有一個EmployeeMonth對象,它保存了員工獲得的計算獎金和積分。在EmployeeMonth對象中有一個BonusMonth對象。 BonusMonth對象設置員工每個月必須達到的時間間隔才能獲得獎勵(該對象每月設置一次,不應更改)。Nhibernate映射,級聯,反轉,更新,插入?
當我重新計算獎勵,例如:88%時,我調整BonusMonth對象間隔,然後重新計算獎金。 新的獎金(結果)然後保存在同一個EmployeeMonth對象中。
當我然後保存新的EmployeeMonth,BonusMonth被保存爲好。
如何配置nhibernate映射,使BonusMonth不被保存?我只想更新/保存重新計算的EmployeeMonth值。
這是我的映射看起來像:
EmployeeMonth.cs
public class EmployeeMonth
{
public virtual Guid Id { get; private set; }
public virtual BonusMonth BonusMonth { get; set; }
public virtual Employee Employee { get; set; }
public virtual int WorkReductionPercent { get; set; }
public virtual int Points { get; set; }
public virtual decimal Bonus{ get; set; }
}
BonusMonth.cs
public class BonusMonth
{
public virtual int BasicPoints { get; set; }
public virtual int ExtraPoints { get; set; }
public virtual int MaxPoints { get; set; }
public virtual decimal BasicBonus { get; set; }
public virtual decimal ExtraBonus { get; set; }
public virtual decimal MaxBonus { get; set; }
}
EmployeeMonth.hbm.xml
<class name="EmployeeMonth">
<id name="Id">
<generator class="guid" />
</id>
<property name="WorkReductionPercent"/>
<property name="Points"/>
<property name="Bonus"/>
<many-to-one name="Employee" unique-key="EpId" column="EmployeeId" cascade="none" not-null="true" insert="true" update="false" />
<many-to-one name="BonusMonth" column="BonusMonthId" cascade="none" not-null="true" insert="true" update="false" />
</class>
BonusMonth.hbm.xml
<class name="BonusMonth">
<id name="Id">
<generator class="guid" />
</id>
<property name="BasicPoints"/>
<property name="ExtraPoints"/>
<property name="MaxPoints"/>
<property name="BasicBonus"/>
<property name="ExtraBonus"/>
<property name="MaxBonus"/>
</class>
工作!謝謝 :) – Ivan 2013-02-13 14:19:43