2012-01-28 8 views
0

現在、私のウェブサイトのプロフィールを作成中です。私は複数のテーブルにまたがって伸びているプロファイルデータを保存できるようにしようとしています。例えばプロファイルMVC3を編集しようとすると、複数のテーブルに情報を保存するにはどうすればよいですか?

Profile looks like this

私は、メインのユーザー表で個人情報を持っています。ユーザーの個人情報を保持します。 次に、私はそのユーザー名の下にユーザーに関する他の情報を持っているので、ユーザー名のテーブルを別に用意しています。私のデータベースに情報を保存しようと

Error looks like this

。このエラーが発生します:参照整合性制約違反です。私はこれのための個々のフォームを作ってみましたが、私はそれが動作するのを見ません。私の質問は、データを保存したいテーブルごとにHTTPPOSTメソッドを作成するのか、ちょうど1つのPOSTメソッドで行うことができますか?

+0

ドメインモデルとビューモデルを同じ目的で使用しないでください。 ViewModelを(あなたのPOSTの中で)掴み、あなたのドメインオブジェクトを構築し、それらを永続させます。 –

答えて

1

My question is, do I make a HTTPPOST method for each table I want to save data to....

サーバーに送信するフォームごとにPOSTを行うことができます。その形式のフォームフィールドがドメインオブジェクト(少なくともプライマリキー)と一致する場合、この方法でデータベースオブジェクトを使用できる可能性があります。これは、データベースオブジェクトの構築方法によって異なります。

or can I do it in just 1 POST method?

はい、フォーム上のすべてのフォームフィールドのメンバーを含むビューモデルを作成します。データベースルックアップに必要な主キーについては、隠しフォームフィールドを必ず含めてください。 POST時に、ビューモデルメンバーをデータベースオブジェクトにマップします。

関連する問題