0

だから私は以前に質問を投稿しましたが、多くのフィードバックを受け取りませんでした。私がそれを間違って説明したのかもしれません。知識が限られていると、正しい質問をするのは難しいです。

要約すると、私には3つのEFエンティティがあります。本、ページ、コンテンツ-本には多くのページがあり、ページには1つのコンテンツしかありません。

すでにコンテンツエントリがあります。作成する必要はありません。Pageエンティティで参照するだけです。だから私がやろうとしているのはこれです:

//Add a new Book
var myBook = new Book();
//Add a new page
var myPage = new Page();

//I'm selecting this one from an asp.net dropdown box
var myContent = contentService.get(id); 

//Connect the page and content
myPage.Content = myContent;

//Add a page to the book
myBook.Pages.Add(myPage)

最初のページを追加するとすべて問題ありませんが、2番目のページを自分の本に追加しようとすると例外が発生します。myContentをナビゲーションプロパティ(myPage.Content = myContent)に割り当てた行をコメントアウトすると、エラーはなくなります。

大きな問題は...ページが既存のデータベースエントリを参照している場合、2ページ以上(データベースに2つの新しいエントリ)の新しい本を追加するにはどうすればよいですか?

4

1 に答える 1

0

2 行を入れ替えます。

myBook.Pages.Add(myPage);
myPage.Content = myContent;

理由は、myBook.Pages.Add(myPage)オブジェクト グラフ全体の状態を に変更するmyPageためAddedです。そのため、最初にページを追加してからコンテンツを割り当てると、コンテンツは残りUnchangedます。

于 2013-03-17T10:23:56.847 に答える