我在让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去做呢?
答案 0 :(得分:0)
如果没有看到您的映射架构,我将不得不猜测。
您是否正在级联您的更新?来自reference:
要保存或更新关联对象图表中的所有对象,您必须
- 保存(),SaveOrUpdate()或更新()每个单独的对象或
- 使用cascade =“all”或cascade =“save-update”来映射关联的对象。
假设您还没有这个,是否将cascade =“all”或cascade =“save-update”添加到标记为inverse =“true”的一侧修复问题?