一次一个孩子

时间:2013-07-03 13:51:30

标签: nhibernate insert parent-child

背景:

  • NHibernate 1.2
  • C#3.5 web application
  • 父子协会:A有一个B
  • 列表
  • 映射是标准<bag>

我可以看到,使用NHProf和SQL Server分析器,NHibernate为每个B发送一个SQL插入。

INSERT INTO B (a,b,c,d) VALUES (1,2,3,4);
INSERT INTO B (a,b,c,d) VALUES (4,5,6,7);
INSERT INTO B (a,b,c,d) VALUES (8,9,10,11);

我怎么能告诉它:

INSERT INTO B (a,b,c,d) VALUES (1,2,3,4), (5,6,7,8), (9,10,11,12)

1 个答案:

答案 0 :(得分:0)

我想我找到了答案。

  • 设置adonet.batch_size
  • 使用HiLo生成器作为主键而不是自动增量

我仍然看到个人INSERT,但是:

  • SQL Server Profiler中的查询计数减少
  • NHProf中没有“SELECT scope_identity()”