0

私は Entity Framework に Dynamic Data を使用していますが、残念ながら .NET 3.5 に固執しているため、これは EF1 であり、現時点ではこれを変更することはできません。

だから私の問題はこれです.table1の部分クラスでToStringメソッドをオーバーライドするときに取得するnull参照に対処するために、いくつかの方法でEntityDataSource.Includeプロパティを追加しようとしました。EntityDataSource 宣言のマークアップにインクルードを設定しようとしEntityDataSource.Include = "table2.table3"ましたが、EntityDataSource.Selectingイベントに設定することもできませんでした。

ご覧のとおり、アソシエーションのアソシエーションにインクルードを追加する必要があります。table2のオーバーライドToStringメソッドで「table3.name + table2.Date」を表示し、table1の編集モード時に関連参照のドロップダウンリストに反映させたい。

DetailsDataSource で問題が発生している理由は何であれ、Include は GridDataSource で問題なく機能します。

4

1 に答える 1

0

アソシエーション参照が ToString オーバーライドにロードされているかどうかを確認し、そうでない場合はそれをロードするという回避策を見つけました。

public override string ToString()
{
    if (this.Course == null)
    {
        if (!this.CourseReference.IsLoaded)
            this.CourseReference.Load();

        return this.Course.Name + " - " + string.Format("{0:yyyy-MM-dd}", this.StartDate.Date);
    }
    else
        return this.Course.Name + " - " + string.Format("{0:yyyy-MM-dd}", this.StartDate.Date);
}
于 2013-04-08T22:40:25.130 に答える