NHibernate 可以在没有迭代器的情况下保存集合吗?

Posted

技术标签:

【中文标题】NHibernate 可以在没有迭代器的情况下保存集合吗?【英文标题】:Can NHibernate save a collection without an iterator? 【发布时间】:2009-12-18 04:05:36 【问题描述】:

简单的问题:例如:

var list = new List<Item>();
list.Add(1000 items);

session.Save(list);

或者我必须在列表中使用foreach 吗?

【问题讨论】:

你应该使用无状态会话查看这个链接***.com/questions/29860256/… 【参考方案1】:

简单的问题 - 简单的答案。 AFAIK 不 - 你必须迭代。事实上,如果您像 NHibernate Docs 中关于批处理的说明那样一次又一次地刷新和清除会话,它会更快:

for(int i=0;i<list.count;i++)

  session.Save(list[i])
  if(i % 20 == 0)
  
    session.Flush();
    session.Clear()
  

【讨论】:

谢谢。没有更多的工作,只是想知道它是否可以为我节省几行代码。

以上是关于NHibernate 可以在没有迭代器的情况下保存集合吗?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在不创建特殊迭代器的情况下每次迭代步进不同的量?

如何在没有 HTML 包装器的情况下保存 DOMDocument 的 HTML?

nhibernate 可以在没有代理的情况下进行延迟加载吗?

nHibernate 保存一对多

使用带有迭代器的 boost 字符串算法

NHibernate 保存非持久化实体,同时保持现有 ID