2011-03-28 29 views
0

我在ASP.Net頁面上有一個GridView。我想將Gridview的DataSource設置爲實體框架對象的可跟蹤集合。我雖然代碼應該看起來像這樣:實體框架可跟蹤集合是否可以綁定到ASP.Net Gridview?

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

但是這不顯示任何數據。

我正在使用自我跟蹤實體,而MyDetailedItems是來自另一個表的行的導航屬性。

回答

0

是的,它可以。如果你不使用延遲加載(LazyLoadingEnabled爲true),那麼這些關係不會自動加載,你要做的:

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");