2011-03-28 4 views
0

ASP.Net 페이지에 GridView가 있습니다. Gridview의 DataSource를 Entity Framework 객체의 추적 가능한 컬렉션으로 설정하고 싶습니다. 코드는 다음과 같아야합니다.Entity Framework 추적 가능 컬렉션을 ASP.Net Gridview에 바인딩 할 수 있습니까?

 this.gvMyGridView.DataSource = entity.MyDetailedItems; 
     this.gvMyGridView.DataBind(); 

그러나 이것은 어떤 데이터도 표시하지 않습니다.

셀프 추적 엔티티를 사용하고 MyDetailedItems는 다른 테이블의 행에 대한 탐색 속성입니다.

답변

0

예, 가능합니다. 당신이 (true로 LazyLoadingEnabled) 게으른 로딩을 사용하지 않는 경우, 이러한 관계가 자동으로로드하지 않으며이 당신이해야 할 :

if (entity.MyDetailedItems.IsLoaded == false) 
    entity.MyDetailedItems.Load(); 

전에 바인딩, 그렇지 않으면 게으른 로딩이 활성화에 EF 4 차례를 사용하는 경우, 더 이상 문제가되지 않습니다.

HTH.

1

EF 4가 self tracking entities does not support lazy loading이므로 네비게이션 속성을 사용하려면이를 명시 적으로로드해야합니다. 사용 중 하나

// loading entity with related entities 
var entity = context.Entities.Include("MyDetailedItems").Single(...); 

또는

// loading related entities for already loaded entity 
context.LoadProperty(entity, "MyDetailedItems");