0
我已經安裝了Linq To SQL Profiler並注意到,我有雙重查詢執行(或者我錯了)。所以:LINQ MVC 3和探查器中的雙查詢
int categoriesCount = _dataManager.PeopleTalesCategories.GetPeopleTalesCategoriesCount();
在這裏,我第一次查詢:
然後:
IEnumerable<PeopleTalesCategory> categories = _dataManager.PeopleTalesCategories.GetAllCategories((int)ViewData["CurrentPage"] * CategoriesOnPage, CategoriesOnPage);
ViewBag.Categories = categories;
return View();
在這裏,我有第二個查詢:
SELECT ...
FROM (SELECT ROW_NUMBER() OVER (ORDER BY [t0].[PositionInMenu], [t0].[NameAn]) AS [ROW_NUMBER],
...
FROM [dbo].[PeopleTalesCategories] AS [t0]) AS [t1]
WHERE [t1].[ROW_NUMBER] BETWEEN 0 /* @p0 */ + 1 AND 0 /* @p0 */ + 15 /* @p1 */
ORDER BY [t1].[ROW_NUMBER]
而且最有趣的 , 什麼時候我開始在這裏顯示我的類別到HTML標記:
@foreach (var c in ViewBag.Categories)
{
<h3><a href="/narodnie-skazki/@c.RouteNameAn">@c.NameAn</a> <span>(@c.tCountInCategory)</span></h3>
<p>@c.Description</p>
}
我得到第三個查詢,就像第二個。
那麼,有沒有人知道我爲什麼在Linq To Sql Profiler中有3個查詢?這是正常的嗎?
Thx很多。
鏈接探查:http://l2sprof.com/
GetAllCategories返回IEnumerable。 ToList()沒有幫助=( – FSou1
是的,它有幫助。但ToList() - > ToList(); :) Thx! –
FSou1