100以上のフィールドを持つかなり大きなSQLデータベーステーブルにバインドしようとしています。私は基本的なCRUD操作をしています。編集に関しては、ページの長さを管理しやすく使いやすくするために、編集を2つのページ(ビュー)に分割することに決めました。私はEntity FrameworkでMVC 3(C#)を使ってデータベースをマッピングしています。MVC 3モデルが長いテーブルの半分にバインドする
私の質問 - それぞれのActionResultでこのテーブルの「半分」にバインドするにはどうすればよいですか? 2つの問題があります。部分クラスとMetadataType属性を使用して、ほとんどの入力を検証しています。あるページで他のフィールドのフィールドが検証されないように検証を分割するにはどうすればよいですか?次に、テーブルのプロパティの半分だけにバインドする方法は?多くの場合、対応するフォーム入力なしでバインドしようとすると、データベースのエラーがトリガーされます。
私は2つのActionResultsで[Bind(Include = "...")]または[Bind(Exclude = "...")]を使用できますが、それはかなり非論理的で、 includeタグまたはexcludeタグ内の50の個別フィールド。これを行うより良い方法はありますか?
ViewModelクラスを使用して、そのページで編集可能なデータを表すことを検討しましたか? AutoMapperを使用して、エンティティとViewModel間のプロパティマッピングを処理できます。 – epignosisx
このViewModelクラスは明らかに、テーブル全体のEDMクラスから継承できませんでした(または、他の半分のフィールドをバインドしようとしています)...このクラスをテーブルにバインドする方法をどのように知っていますか? – Sylver
エンティティとViewModelは別々のクラスです。 1つは他のものから継承しません。 1つのクラスの各プロパティを他のクラスに手動でマップする必要があります。これは面倒な作業ですが、AutoMapperを使用してマッピングを処理することができます。 – epignosisx