c# - Entity Framework 在不同集合中多次引用同一个对象

标签 c# entity-framework

我只是在玩这个 Code First example对于 Entity Framework ,我遇到了一个我不明白的问题。假设 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);
    }
}

为什么在两个博客中都引用的帖子只出现在第二个博客中?每次向数据库添加内容时是否都必须调用 SaveChanges

最佳答案

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

关于c# - Entity Framework 在不同集合中多次引用同一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17088551/

相关文章:

c# - 这些装箱/拆箱示例

c# - 在 LINQ 中编写 Case 语句

c# - Entity Framework 5 迁移与数据迁移

entity-framework - 使用 Entity Framework 5 保存大图

c# - 在 Entity Framework 中编辑对象并将其保存到 ASP.NET MVC 2.0 中的数据库

c# - 保存加密配置部分时防止 IIS 应用程序重启?

c# - SpreadsheetGear CopyFromDataTable 单元格格式

c# - IIS/SQL Server 连接错误

c# - 更新具有多对多关系的断开连接的实体

c# - Entity Framework : Regeneration of changed tables (key changes)