NHibernate - 这是什么样的联想?

时间:2009-02-19 20:27:35

标签: nhibernate nhibernate-mapping

我在让NH持久保存对象图时遇到了一些麻烦。

我有(像这样):

/*Tables*/
TABLE Parent
  ParentID PK 
  LastEventID NULL

TABLE Event
  EventID PK
  ParentID FK NOT NULL

//Model Classes

public class Parent
{
    public List<Event> Events;  //Inverse

    //Denormalized bit
    public Event LastEvent;  //not inverse

}

public class Event
{
    public Parent Parent;  //Makes the association up there Inverse
}

我正在创建一个新的Parent,创建一个新的Event,添加新的Event 到Parent.Events并将Parent.LastEvent设置为新事件。

当我告诉NH保存父母时,我得到一个关于瞬态的错误 需要先保存的对象。我认为它是因为关联 父母和事件之间的关系不明确。

SQL需要的方式是插入带有null的Parent LastEvent,然后插入Event,然后更新Parent.LastEvent。

那么我如何让NH去做呢?

1 个答案:

答案 0 :(得分:0)

如果没有看到您的映射架构,我将不得不猜测。

您是否正在级联您的更新?来自reference

  

要保存或更新关联对象图表中的所有对象,您必须

     
      
  • 保存(),SaveOrUpdate()或更新()每个单独的对象或
  •   
  • 使用cascade =“all”或cascade =“save-update”来映射关联的对象。
  •   

假设您还没有这个,是否将cascade =“all”或cascade =“save-update”添加到标记为inverse =“true”的一侧修复问题?