我有一个旧的存储过程我正在重写为EF Linq查询但是proc几乎快了3倍!
这是查询语法的示例:
public string GetStringByID(long ID)
{
return dataContext.Table2.FirstOrDefault(x => x.Table2ID == ID).Table1.StringValue;
}
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的sproc代码以及调用它的方法.
sproc是:
PROCEDURE [dbo].[MyQuickerProc]
@ID bigint
AS
BEGIN
SET NOCOUNT ON;
IF EXISTS(SELECT TOP 1 ID FROM Table2 WHERE Table2ID = @Id)
BEGIN
SELECT TOP 1 t1.StringValue
FROM Table2 t2
INNER JOIN Table1 t1 ON t1.Table1ID= Table2.Table1ID
WHERE Table2ID = @ID
END
ELSE
BEGIN
SELECT TOP 1 t1.StringValue
FROM Table2 t2
INNER JOIN Table1 t1 ON t1.Table1Id = Table2.Table1ID
WHERE Table2ID IS NULL
END
END …Run Code Online (Sandbox Code Playgroud)