在保存父对象之前,如何(以及在何处)将子对象从UI(jqgrid)存储到asp.net-mvc服务器

在保存父对象之前,如何(以及在何处)将子对象从UI(jqgrid)存储到asp.net-mvc服务器,asp.net-mvc,nhibernate,jqgrid,parent-child,Asp.net Mvc,Nhibernate,Jqgrid,Parent Child,我有一个asp.net-mvc网站,我使用nhibernate。我遇到了一个问题,我的UI需要将子项添加到父对象,但该父对象尚未插入(因此没有ID) 详情如下: 我有一个基本的“详细信息”页面,它是一个表单(一组输入控件),表示对象的属性(本例中为项目对象),其中有一个用于名称的文本框、用于描述的文本区域等 (简化视图)项目对象如下所示 public class Project { public string Name; public string Description

我有一个asp.net-mvc网站,我使用nhibernate。我遇到了一个问题,我的UI需要将子项添加到父对象,但该父对象尚未插入(因此没有ID)

详情如下:

我有一个基本的“详细信息”页面,它是一个表单(一组输入控件),表示对象的属性(本例中为项目对象),其中有一个用于名称的文本框、用于描述的文本区域等

(简化视图)项目对象如下所示

public class Project
{
      public string Name;
      public string Description;
      public List<Project> Dependencies;
      public int Id;
}
作为参考,以下是我的ProjectMap类中fluent nhibernate布线的关系:

  HasMany(x => x.Dependencies).AsBag().Inverse().Cascase.AllDeleteOrphan().Fetch.Select().BatchSize(80);
当我在编辑屏幕上执行此操作时,它可以正常工作,因为我已经有了一个项目ID

但我不知道如何在“添加项目”屏幕上实现这一点,因为人们会在保存初始项目之前尝试向项目添加依赖项,因此它还没有id

我应该使用一些会话缓存来临时存储此列表吗?因此,当我实际要提交项目以进行插入时,在项目插入成功后,我会将当时的所有依赖项附加到主项目上

一个选择是,我不支持在添加项目页面上添加依赖项,而只支持在编辑项目页面上添加依赖项,但这似乎会让用户感到恼火


以前有没有人遇到过这个问题并能提供任何建议?

我个人会将新的依赖项存储到HTML输入字段中,只有当用户提交表单时,才会将它们全部发送到服务器,服务器会将它们插入数据库。这里有一个例子来说明这个概念

  HasMany(x => x.Dependencies).AsBag().Inverse().Cascase.AllDeleteOrphan().Fetch.Select().BatchSize(80);