1

EntityFramework を使用して、調査情報 (100% 挿入、更新または削除なし) を取得して SQL サーバーに保存するための多数のコントロールをDetailsView含むページを作成しました。FormView関連するテーブル/エンティティには、Survey、Question、Respondent、Response、Answer、およびいくつかの Type ルックアップが含まれます。(Survey には質問のリストがあり、回答者が記入します。Respondent's Response には Answers のリストがあります。Answer は質問に回答します。) すべてが意味をなすことを願っています。

ユーザーが各 DetailsView または FormView で自動生成された [挿入] ボタンをクリックするのではなく、すべての新しいデータを挿入するための単一の送信ボタンを提供したいと思います。基本的に、*フォームごとに自動的に作成された挿入ボタンによって呼び出されるコマンドを呼び出す方法を探しています。

これを行う方法は、DetailsView コントロールと FormView コントロールをループし、ObjectContext に移動するときにエンティティを保存 (アタッチ?) し、SaveChanges() を呼び出して一度にすべてをデータベースに挿入することだと考えました。ただし、新しいエンティティへのアクセスに問題があります。FormView/DetailsView 自体からそれらにアクセスできないようで、*Views 内の BoundFields にアクセスできないようです。

FormViews 内に FormViews をネストしようとしました、これは可能であると推測されますが、エラーが発生しますType 'System.Web.UI.WebControls.FormView' does not have a public property named 'FormView'.

私は s に関連付けられたObjectContextand/or sを含むソリューションを検討し始めようとしていますが、その側から来る場合は、プレーンなes を使用してそれらをループするだけでよいように思えますデータバインディング機能を起動させるのではなく、すべてのエンティティをコードで作成します。EntityDataSourceDetailsViewTextBox

各 *Form の挿入ボタン コマンドを実行して、新しく作成されたすべてのエンティティを各 DetailsView/FormView に保存する方法を誰かが指摘できますか、または別の領域 (ObjectContext または EntityDataSource など) を調べ始める必要があるかどうかを教えてください。

どうも
ありがとう

4

1 に答える 1

1

私はアホです。

*Form のInsertItemメソッドを呼び出す必要がありました。

初めて API を読んだとき、なぜ気づかなかったのかわかりません。

于 2012-08-28T07:14:20.487 に答える