0

ASP.NetページにGridViewがあります。GridviewのデータソースをEntityFrameworkオブジェクトの追跡可能なコレクションに設定したいと思います。コードは次のようになりますが、次のようになります。

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

ただし、これにはデータは表示されません。

自己追跡エンティティを使用していますが、MyDetailedItemsは別のテーブルの行へのナビゲーションプロパティです。

4

2 に答える 2

1

セルフ トラッキング エンティティを使用する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");
于 2011-03-28T17:40:04.947 に答える
0

はい、できます。遅延読み込みを使用していない場合 (LazyLoadingEnabled を true に設定)、これらの関係は自動的に読み込まれないため、次の操作を行う必要があります。

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

バインドする前に、それ以外の場合は、EF 4 を使用して遅延読み込みを有効にすると、これはもはや問題になりません。

HTH。

于 2011-03-28T16:15:29.260 に答える