2

この Entity Framework のCode First の例をいじっていたところ、理解できない問題に遭遇しました。POCO オブジェクトとデータベース コンテキストが例と同じであり、アプリケーションのエントリ ポイントに次のコードがあると仮定します。

var blog = new Blog { Name = "My Blog" };
var post = new Post {Title = "A Random Post", Blog = blog};
blog.Posts = new List<Post> {post};
db.Blogs.Add(blog);

var blog2 = new Blog {Name = "Another Blog", Posts = new List<Post> {post}};
db.Blogs.Add(blog2);

db.SaveChanges();

// Display all Blogs from the database
var query = from b in db.Blogs
            orderby b.Name
            select b;

Console.WriteLine("All blogs in the database:");
foreach (var item in query)
{
    Console.WriteLine(item.Name);
    foreach (var p in item.Posts)
    {
        Console.WriteLine(p.Title);
    }
}

両方のブログで参照されている投稿が、2 番目のブログにのみ表示されるのはなぜですか? SaveChangesデータベースに何かを追加するたびに呼び出す必要がありますか?

4

2 に答える 2