2011-03-28 84 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");