我在 SQL Server 2008 R2 中编写了一个简单的存储过程,当在 SSMS 中进行测试时,它会立即执行。但是,当我将它映射到 LINQ2SQL (DBML) 并在那里执行时,由于某种原因它会超时。
我一点也不知道从哪里开始……
编辑:其他一切都有效(一般 LINQ2SQL 以及其他存储过程)。下面提到的存储过程是新添加到 DBML 中的。
存储过程:
SELECT TOP 50 P.ID, t1.NAME
FROM P
INNER JOIN t1 ON P.ID = t1.ID
WHERE (P.ID <> @id) AND (P.ID2 = @id2) AND t1.NAME IN (
select NAME from t1
where ID = @id
)
C#:
int id1,id2;
using (var db = new DataContext())
{
foreach (var item in db.SPROC(ID1, ID2)) // Timeout exception here!
{
// code...
}
}
编辑#2:我已将存储过程更改为相同的确切代码,现在它可以工作了。我不确定是什么问题,但我假设这不是 SQL Server 的错。