Skip to main content
 首页 » 编程设计

c#之EntityFramework 将新对象添加到集合中

2024年02月02日36tuyile006

可能这个问题之前已经回答过,如果是这样的话,如果你们能指出我正确的方向,我将不胜感激。

我想知道将新对象添加到 EntityFramework 集合时会发生什么。

更准确地说,我想知道是否为了添加新对象而将整个集合加载到内存中

例如:

public class MyContext : DbContext 
{ 
    public DbSet<Assignment> Assignments { get; set; } 
} 
 
public class SomeClass 
{ 
    public void AddAssignment(Assignment assignment) 
    { 
        var ctx = new MyContext(); 
 
        ctx.Assignments.Add(assignment); 
 
        ctx.SaveChanges(); 
    } 
} 

是否所有的分配记录都必须加载到内存中才能执行简单的插入操作???

请您参考如下方法:

简而言之:整个实体集合的加载过程。

AddObject() 方法用于添加数据库中不存在的新创建的对象。当调用 AddObject() 时,会生成一个临时的 EntityKey 并将 EntityState 设置为 'Added',如下所示:

调用 context.SaveChanges() 时,EF 4.0 继续将记录插入数据库。请注意, Entity Framework 将代码转换为数据库可以理解的查询,并处理所有数据交互和低级细节。另请注意,在上面的代码中,我们将数据作为对象和属性进行访问。

执行代码后,您可以继续对数据库中的记录进行物理验证。