强制实体框架使用多行/多记录sql语法

时间:2015-09-24 07:15:15

标签: entity-framework entity-framework-6

实体框架在向服务器发送查询时是否可以使用下一种语法:

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最大数据包大小等众多原因不支持此功能....只是询问它是否可能。

1 个答案:

答案 0 :(得分:1)

Stack Overflow上存在与插入性能相关的几个问题。一些与变大的上下文有关,因此添加到DbSet变慢,一些与DBMS性能有关。

如果您使用SQL Server,可以尝试使用此帮助程序 https://efbulkinsert.codeplex.com/ 它使用System.Data.SqlClient.SqlBulkCopy,因此它应该比Insert更快。