实体框架在向服务器发送查询时是否可以使用下一种语法:
INSERT INTO MyTable (id, name) VALUES (1, 'Bob'), (2, 'Peter'), (3, 'Joe');
因为这会提高性能。我使用的是sql profiler,默认情况下它会使用单数插入,例如
INSERT INTO MyTable (id, name) VALUES (1, 'Bob')
INSERT INTO MyTable (id, name) VALUES (2, 'Peter')
INSERT INTO MyTable (id, name) VALUES (3, 'Joe')
我知道sql server最大数据包大小等众多原因不支持此功能....只是询问它是否可能。
答案 0 :(得分:1)
Stack Overflow上存在与插入性能相关的几个问题。一些与变大的上下文有关,因此添加到DbSet变慢,一些与DBMS性能有关。
如果您使用SQL Server,可以尝试使用此帮助程序 https://efbulkinsert.codeplex.com/ 它使用System.Data.SqlClient.SqlBulkCopy,因此它应该比Insert更快。