1
所以我需要一些sql查詢。 linq生成的sql看起來非常不合理,並且存儲過程超時。將Linq轉換爲更好的sql查詢sql
這裏就是我想要做的事。
兩個表,如下所示:
dbo.Links
-------------
Id
Url
Title
而另外一個看起來像這樣
dbo.Link_Counts
-----------------
Url
Count
我想什麼做的是寫一個SQL查詢,這是否
var linkCounts = Links.GroupBy(x => x.Url)
.Select(grp => new Link_Counts
{
Url = grp.First().Url,
Count = grp.Count()
});
InsertAllOnSubmit(linkCounts);
SubmitChanges();
,我嘗試使用這部分是從該生成的SQL是
INSERT INTO Link_Counts (Url, Count)
SELECT (
SELECT [t3].[URL]
FROM (
SELECT TOP (1) [t2].[URL]
FROM [Links] AS [t2]
WHERE (([t1].[URL] IS NULL) AND ([t2].[URL] IS NULL)) OR (([t1].[URL] IS NOT NULL) AND ([t2].[URL] IS NOT NULL) AND ([t1].[URL] = [t2].[URL]))
) AS [t3]
) AS [Url], [t1].[value] AS [Count]
FROM (
SELECT COUNT(*) AS [value], [t0].[URL]
FROM [Links] AS [t0]
GROUP BY [t0].[URL]
) AS [t1]
END
凡顯然過長運行存儲過程。
任何幫助將不勝感激。
感謝
oops ...在linq查詢上很好的調用 –