我在让 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.Events 并将 Parent.LastEvent 设置为新的事件。
当我告诉 NH 保存父对象时,我收到一个关于需要首先保存的瞬态对象的错误。我假设它是因为 Parent 和 Event 之间的关联尚不清楚。
SQL 需要采用的方式是使用 null LastEvent 插入 Parent,然后插入 Event,然后更新 Parent.LastEvent。
那么我如何让 NH 做到这一点呢?