Nhibernate 是否保留顶级集合?

Nhibernate 是否保留顶级集合?,nhibernate,Nhibernate,NHibernate允许我查询数据库并获取对象的IList。假设我得到一个包含几十个对象的列表,并修改了大约六个对象。NHibernate是否有办法将更改持久化到集合中,还是在更改时必须持久化每个对象 这里有一个例子。假设我运行以下代码: var hql = "from Project"; var query = session.CreateQuery(hql); var myProjectList = query.List<Project>(); var myNewProject

NHibernate允许我查询数据库并获取对象的IList。假设我得到一个包含几十个对象的列表,并修改了大约六个对象。NHibernate是否有办法将更改持久化到集合中,还是在更改时必须持久化每个对象

这里有一个例子。假设我运行以下代码:

var hql = "from Project";
var query = session.CreateQuery(hql);
var myProjectList = query.List<Project>();
var myNewProject = new Project("My New Project");
myProjectList .Add(myNewProject);
假设我做了几次,在列表中添加了几个新项目。现在,我准备将更改持久化到集合中

我想通过简单地将myProjectList传递到当前ISession进行更新来保持更改。但是ISession.SaveOrUpdate()似乎只接受单个对象,而不是像myProjectList这样的集合。有没有一种方法可以持久化对myProjectList的更改,或者在创建每个新对象时必须持久化它?谢谢你的帮助

大卫·维尼曼

Foresight Systems

如果像您的示例中那样加载对象,则必须逐个持久化它们

但是,如果您进行了一个小的设计更改,并加载了类似这样的内容:具有
IList
的帐户-如果您在映射中指定了cascade“what\u cascade\u you\u need”,那么当您更改帐户上的项目时,您只需保存帐户,所有内容都将被保存