2010-01-07 2 views
0

LINQ to SQL 개체가 있고 선택한 데이터를 그룹화 한 다음보기로 전달하고 싶습니다. 이 작업을 수행하는 올바른 방법은 무엇입니까? 보기에서 그룹화하지 않고 데이터를 그룹화 할 필요가 있다고 확신합니다. 이렇게하면 내보기에 전달해야하는 약 50000 개의 행이 약 200 개가됩니다. 이 온라인의 좋은 예가 누구나 보았습니까?ASP.NET MVC - 그룹화 된 데이터를보기로 전달

건배

MH


----- 편집 -----

내가 원하는 모두의 비트 : - 예를 들어 , 내 데이터 객체가 있습니다 (사이 기타) ItemDetail.ItemID 및 ItemDetail.Label에서 추출 및 그룹화하려는 2 가지 속성 - 내보기로 전달하려는 집합입니다. 내 데이터 팩토리는 각 ItemID/Label 조합에 대해 약 100 개의 레코드를 포함하는 IQueryable을 반환하므로 ItemID/Label 조합 당 하나의 행만 표시하도록이 뷰를 그룹화하려고합니다. 또한 뷰를 입력하려면 어떻게해야합니까? var xxx = ...; 반환보기 (xxx); 그러나 나는보기를 올바르게 입력하는 방법을 잘 모르겠습니다. 나는 아마 이것을 boj하고 그것을 작동 시키지만, 나는 이것을 정확하게하고 싶었다.


---- 편집이 ----

난 그냥 이것에 조금 더있어. (I => i.ItemID) .Select (i => i.First()); 은 ItemID 당 1 행을 가진 그룹화 된 목록을 생성하고 강력하게 유형이 지정된보기로 전달할 수 있도록 개체 유형을 보존합니다. 데이터를 조작하는 올바른 방법입니까? 어떻게 그룹화의 다른 레이어를 넣어서 .ItemID 그룹 내에서 .Label로 그룹화 할 수 있습니까?

+0

나는 여기에서 성취하려고하는 바를 전혀 모른다. 몇 가지 샘플을 가지고 이것을 명확히 할 수 있습니까? –

+0

linq 구문을 사용하여이 작업을 수행 하시겠습니까? – UpTheCreek

답변

1

당신은 추상적으로는 LINQ 2 SQL 객체에서보기에 전달 모델을 할 수 있습니다; View Model Pattern을 확인하십시오. LINQ 2 SQL 개체의 속성을 View Model 개체에 매핑하는 코드가 많은 경우 잠재적으로 AutoMapper을 사용하는 것이 좋습니다.

1

그럼 그룹의 데이터와 컨트롤러에서보기에 그것을 통과 ...

public ViewResult Foo() 
{ 
    var data = this.GetGroupedData(); 
    return this.View(data); 
} 

private IEnumerable<Bar> GetGroupedData() 
{ 
    return from x in GetData() 
      group x by x.Baz into g 
      select new Bar(g.Key); 
} 
+0

어떻게이보기를 강력하게 입력합니까? –

+0

이 예제에서 View는'IEnumerable '로 강하게 입력됩니다. 일반적으로 목록을 캡슐화하는 특정 ViewModel을 만듭니다. –

+0

이 방법을 사용하여 그룹화 된 키뿐만 아니라 다른 속성을 어떻게 잡을 수 있습니까? –

1

보기에서 그룹을 나타내는 Presentation-Models을 정의 할 것입니다. 프레젠테이션 모델을 LINQ로 채우고보기에 전달하십시오.

프레젠테이션 모델을 사용하면보기에 표시 할 데이터를 강력하게 입력 할 수 있습니다.

관련 문제