实体框架在不同的集合中多次引用同一对象

Gab*_*Roy 2 c# 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么这两个博客中引用的帖子只出现在第二个博客中?SaveChanges每次我向数据库添加内容时都必须打电话吗?

Kri*_*aes 5

帖子只能属于一个博客.通过将其添加到第二个博客的帖子列表,对第一个博客的引用将被覆盖.