可能这个问题之前已经得到了回答,如果是这样的话,如果你们指出我正确的方向,我将不胜感激。
我想知道将新对象添加到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();
}
}
是否必须将所有分配记录加载到内存中才能执行简单的插入???
答案 0 :(得分:5)
简而言之:整个实体集合的无加载过程。
AddObject()
方法用于添加数据库中不存在的新创建的对象。调用AddObject()
时,会生成一个临时EntityKey
,并将EntityState设置为'Added',如下所示:
调用context.SaveChanges()
时,EF 4.0继续并将记录插入数据库。请注意,Entity Framework将代码转换为数据库理解的查询,并处理所有数据交互和低级细节。另请注意,在上面的代码中,我们将数据作为对象和属性进行访问。
执行完代码后,您可以继续物理验证数据库中的记录。