可以将实体框架可跟踪集合绑定到ASP.Net Gridview吗?

时间:2011-03-28 15:41:18

标签: asp.net entity-framework-4 poco self-tracking-entities

我在ASP.Net页面上有一个GridView。我想将Gridview的DataSource设置为可跟踪的Entity Framework对象集合。我虽然代码应该是这样的:

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

但这不会显示任何数据。

我正在使用自我跟踪实体,而MyDetailedItems是来自另一个表的行的导航属性。

2 个答案:

答案 0 :(得分:1)

带有self tracking entities does not support lazy loading的EF 4,因此如果要使用它们,必须明确加载导航属性。使用:

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

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

答案 1 :(得分:0)

是的,它可以。如果您没有使用延迟加载(LazyLoadingEnabled为true),那么这些关系不会自动加载,您必须这样做:

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

在绑定之前,否则,如果使用EF 4打开延迟加载,则不再成为问题。

HTH。