EF存储过程被调用两次

时间:2014-06-27 14:23:33

标签: c# sql-server entity-framework

我有一个存储过程,大约需要2秒钟来运行并从sql server management studio返回一个表。它返回大约8k记录。当我从EF运行时,运行并返回大约需要1分钟。我使用下面的行代码打开调试,我注意到它运行了两次proc。两者都在大约30秒内。有没有人有任何想法为什么EF这样做?我能掌控这个吗?有没有办法加快速度?返回多少条记录似乎要求它被调用一次或两次。我有一个返回2k记录的例子,它只运行一次proc。我有一些返回8k +并运行两次。似乎永远不会超过我能看到的两倍。

dbContext.Database.Log = s => System.Diagnostics.Debug.WriteLine(s);


var data = dbContext.GetData(param1, param2);

Opened connection at 6/27/2014 9:33:36 AM -05:00

[dbo].[GetData]


-- param1: 'Test' (Type = AnsiString, Size = 8000)

-- param2: 'Test2' (Type = AnsiString, Size = 8000)

-- Executing at 6/27/2014 9:33:36 AM -05:00

-- Completed in 30309 ms with result: SqlDataReader



[dbo].[GetData]


-- param1: 'Test' (Type = AnsiString, Size = 8000)

-- param2: 'Test2' (Type = AnsiString, Size = 8000)

-- Executing at 6/27/2014 9:34:07 AM -05:00

-- Completed in 30753 ms with result: SqlDataReader

0 个答案:

没有答案