EntityFramework将新对象添加到集合中

Jup*_*aol 1 .net c# entity-framework

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

我想知道将新对象添加到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();
    }
}
Run Code Online (Sandbox Code Playgroud)

是否必须将所有赋值记录加载到内存中才能执行简单的插入???

EL *_*bov 5

简而言之:整个实体集合没有加载过程.

AddObject()方法用于添加数据库中不存在的新创建的对象.当AddObject()被调用时,临时EntityKey产生和EntityState被设置为"添加",如下所示:

在此输入图像描述

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

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