0

私がやろうとしているのは、FluentHtml を介して EF エンティティに外部キー オブジェクトを設定することです。Foo.Bar を介してオブジェクト Bar への参照を持つ Foo のエンティティがあります。私がやろうとしているのは、ビュー フォームに Bar の値を設定することです。私のモデルには、Model.Bars を介してすべてのバーのコレクションが含まれています。私の見解では、私は単に使用して<%= this.Select(m => m.Foo.Bar).Options(Model.Bars) %>いますが、モデルの状態はそれが有効ではないと主張しています。ドロップダウンにはバー ID が適切に入力されており、すべて有効に見えます。フォームで EF エンティティ参照プロパティを設定するために必要な特別な魔法はありますか?

オブジェクトと同様にキー参照をマップできるため、単に Select(m => m.Foo.BarId) を使用していた Linq2SQL から移動しました。ただし、Entity Framework はこれを許可しません。

4

2 に答える 2

1

ビュー モデルとしてビジネス オブジェクトを使用することから生じる多くの複雑さの 1 つに遭遇しています。長い目で見れば、レンダリングとバインドのためにビジネス オブジェクトを軽量のビュー モデルに変換すると、問題が大幅に軽減されると思います。EditFoo.BarId に基づいて Foo.Bar を設定する方法をサービス レイヤー (または必要に応じてコントローラー) に理解させます。

于 2009-11-10T16:42:54.137 に答える
0

FluentHtmlがわかりません。しかし、EFに関して:

  1. EF 4.0では、「外部キーの関連付け」を使用できます。これにより、L2Sと同様にm.Foo.BarIdを参照できます。
  2. EF 1では、またはEF 4の「独立した関連付け」を使用して、Barがロードされている場合は、m.Foo.Bar.Id(余分なドットに注意)を実行する必要があります。
于 2009-11-05T18:25:08.627 に答える