Может ли отслеживаемая коллекция Entity Framework быть привязанной к ASP.Net Gridview?

У меня есть GridView на странице ASP.Net. Я хотел бы установить источник данных Gridview для отслеживаемой коллекции объектов Entity Framework. Я думаю, что код должен выглядеть так:

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

Но это не отображает никаких данных.

Я использую объекты самопроверки, а MyDetailedItems - это свойство навигации по строкам из другой таблицы.

2 ответа

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

Да, оно может. Если вы не используете отложенную загрузку (для LazyLoadingEnabled установлено значение true), эти отношения не загружаются автоматически, и вы должны сделать:

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

В противном случае, если используется EF 4, включите отложенную загрузку, и это больше не станет проблемой.

НТН.

Другие вопросы по тегам