2011-10-12 3 views
0

Linq를 SQL 프로파일 러에 설치했는데 이중 쿼리를 실행하고 있습니다 (또는 잘못되었습니다). 그래서 그런 다음LINQ MVC 3 및 ​​프로파일 러의 이중 쿼리

SELECT COUNT(*) AS [value] 
FROM [dbo].[PeopleTalesCategories] AS [t0] 

:

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] 

그리고 가장 흥미를 : 여기에

IEnumerable<PeopleTalesCategory> categories = _dataManager.PeopleTalesCategories.GetAllCategories((int)ViewData["CurrentPage"] * CategoriesOnPage, CategoriesOnPage); 
    ViewBag.Categories = categories; 
    return View(); 

내가 두 번째 쿼리가 여기에

int categoriesCount = _dataManager.PeopleTalesCategories.GetPeopleTalesCategoriesCount(); 

내가 첫 번째 쿼리가 , 언제 내가 여기에 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에서 SQL 프로파일 러 3 쿼리가 왜 있는지 아나요? 정상입니까?

Thx 많이 있습니다. 프로파일에

링크 : http://l2sprof.com/

답변

1

내가 GetAllCategories 내가 그 여기 발생하는 이유를 모르겠어요하지만, 두 번 열거 도착을 IQueryable을 반환 같은데요. 여하튼 GetItemCategory에서 반환 할 때 .ToList()를 사용하거나 뷰백에 할당 할 때 도움이 될 수 있습니다.

ViewBag.Categories = categories.ToList(); 
+0

GetAllCategories는 IEnumerable을 반환합니다. ToList() didnt help = ( – FSou1

+0

예, 도움이됩니다. 그러나 ToList() -> ToList (); :) Thx! – FSou1

관련 문제