簡単な ASP.NET 動的データ アプリケーションを作成しましたが、開発用コンピューターで完全に動作します。展開すると、他のテーブルと多対多の関係を持つアイテムの挿入ページを除いて、すべて正常に機能します。編集ページは問題なく、多対多のチェックボックスが表示されます。サーバーが.NET 4.0
インストールされました。
ここの指示に従いました: http://go.microsoft.com/fwlink/?LinkId=257395
誰が問題が何であるか考えていますか?
簡単な ASP.NET 動的データ アプリケーションを作成しましたが、開発用コンピューターで完全に動作します。展開すると、他のテーブルと多対多の関係を持つアイテムの挿入ページを除いて、すべて正常に機能します。編集ページは問題なく、多対多のチェックボックスが表示されます。サーバーが.NET 4.0
インストールされました。
ここの指示に従いました: http://go.microsoft.com/fwlink/?LinkId=257395
誰が問題が何であるか考えていますか?
@TimS: 状況に関する追加情報を追加できれば役立つかもしれません。これは、ある環境では機能し、別の環境では機能しませんか? 両方の環境にインストールされているすべてのコンポーネントのバージョンを把握していますか?
質問を正しく理解していれば、最初の2つの場所は次のとおりです。
フォームからエンティティ/モデルへのある種の自動マッピングがあると仮定すると、「挿入」ページをロードする前にエンティティまたはモデルをデフォルト値で初期化する必要がありますか?
あなたのデータベースも両方のセットアップで同一ですか - 同じキーが定義されています(コードは同一であると仮定しています...)
100% 確実ではありませんが、開発マシンとサーバーで System.Web.DynamicData.dll と System.Web.DynamicData.Design.dll のバージョンが異なっていたので、再確認してください。また、すべての関係テーブルに主キーを設定する必要があったことも覚えていますが、それは別の問題だった可能性があります...これにより、解決策を見つけたときに自分の質問に答えることができます...
多対多テーブルに、関連する 2 つのテーブルの主キーで構成される主キーがあることを確認してください。
テーブルがビューではなくテーブルとして EDMX に表示されることを確認します (特に、DB ファーストを使用していて、ポイント 1 を修正する必要がある場合)。
POCO を使用している場合は、関係プロパティ (およびその他のプロパティ) が公開または保護されており、仮想であることを確認してください。
POCO を使用している場合は、変更時に関係の反対側を修正するようにしてください (POCO-T4 のデフォルト)。
a と b などの 2 つのエンティティを使用して関係を設定する場合
:
次に、a が代わりに a.Bs.Add(b);
プロキシとして作成された場合: EF が変更を識別しやすくなります。また、 を使用している場合は、EF が変更を見つけられるように呼び出すことができます。 a = context.As.CreateObject();
a = new A();
ObjectContext
context.SaveChanges(SaveOptions.DetectChangesBeforeSave | SaveOptions.AcceptAllChangesAfterSave);