やあ、
この質問の短いバージョンは、「部分クラスで設定された多対多フィールドを持つオブジェクトのデータベース挿入を適切に処理する方法はありますか?」です。以前に質問されていたらすみません。
例
テーブルを含む典型的な MVC セットアップがあるとします。
- 投稿 {PostID, ...}
- カテゴリ {CategoryID, ...}
投稿には複数のカテゴリを含めることができ、カテゴリは複数の投稿を識別することができます。したがって、さらに追加のテーブルが必要だとします。
- PostCategories {PostID, CategoryID, ...}
これにより、投稿とカテゴリの間の多対多の関係が処理されます。私の知る限り、Linq-to-SQL でこれを行う方法は今のところないので、部分的な Post クラスをプロジェクトに追加してその機能を追加する必要があります。何かのようなもの:
public partial class Post
{
public IEnumerable<Category> Categories{ get { ... } set { ... } }
}
これで、「Categories」UI アイテムを自動的に入力する「Create」ビューを作成できるようになりました。他のフィールドと同じように扱えます - 楽しいです!
ここからトラブルが始まります。
では、私の質問は次のとおり
です。制御する多対多の関係を持つオブジェクトに対して、自動オブジェクト モデル バインディングを正常に機能させるにはどうすればよいでしょうか。多対多の関係を可能にする回避策は、検証と挿入のために Post オブジェクトが送信された後にのみ発行される CategoryID に関連付けるために PostID を持つ Post オブジェクトに依存します。
ここでCatch22のビット。提供できる用語、リンク、またはヒントは、非常に役立ちます。