Webの標準チュートリアルを使用してASP.NETMVC3を掘り下げようとしていますが、戦略の問題が発生します。
現在、私は本のサンプルをフォローしており、映画のジャンルが別のエンティティに保存され、外部キーに接続されている「Movie」クラスを使用しています(わかりました、私はドイツ出身なので、クラスの名前はドイツ語です)。ここでは、関連するプロパティのみを示します。これはDbContextを使用したデータベースファーストのアプローチであり、私のモデルはEF 4.x DbContext Generatorを使用してedmxから作成され、edmxはデータベースから自動的に作成されました。
public partial class Film
{
public Film() { }
public int ID { get; set; }
public string Titel { get; set; }
public int GenreID { get; set; }
public virtual Genre Genre { get; set; }
}
public partial class Genre
{
public Genre() { }
public int GenreID { get; set; }
public string Name { get; set; }
}
DBSetを提供するDBContextを使用して、FilmクラスのCRUDビューを使用して新しいコントローラーを作成すると、DropdownListを使用して「Genre」というラベルの付いたGenreIDを編集する編集ビューが表示されます。罰金。それが私が欲しいものです。
しかし、その後、別の編集ビューを個別に作成しようとしました。そこで、編集アクションメソッドを右クリックして、「ビューの追加」を選択し、「Edit2」と呼び、モデルとしてフィルムを使用し、スキャフォールドテンプレートとして「編集」を使用しました。このビューでは、GenreIDというラベルの付いた単純な「EditorFor(m-> m.GenreID)」を取得しました。それは私が望んでいることではありません。
もちろん、手動で変更することもできます。もちろん、私はもっとうまくいくと主張するたくさんの足場ツールをダウンロードすることができます。
しかし、これがEFテンプレートのバグなのか、それとも私のモデルが間違って構築されているためにジャンル/ジャンルIDが混乱するのかを理解したいと思います。すべてを一度に作成すると、scaffoldがDropDownを作成するため、欠落している詳細が「ただ」あるはずです。