38

可能重复:
Entity Framework 4 - AddObject vs Attach

我见过几次使用附加,尤其是在操作模型时。

using (var context = new MyEntities())
{
    context.Attach(client);
    context.SaveChanges();
}

从上下文来看,它看起来只是UPDATE针对 EntityFrameworks 中的记录运行,但我也看到它在DELETE语句中使用。所以我只能假设它只是获得一个指向数据库的指针?

有人可以指出我正确的方向吗,我已经用谷歌搜索了一段时间,虽然我没有空出来,但我找不到任何关于它的作用的很好的解释(从概述和内部)。

4

1 回答 1

59

正如一个兴趣点,您发布的代码什么也不做

using (var context = new MyEntities())
{
    context.Attach(client);
    context.SaveChanges();
}

所有这一切都是将实体附加到跟踪图中,不对实体进行任何修改并保存它。

在附加之前对对象所做的任何更改都会在保存中被忽略

更有趣的是,如果它实际上更新了一个属性,即:

using (var context = new MyEntities())
{
    context.Attach(client);
    client.Name = "Bob";
    context.SaveChanges();
}
于 2012-07-29T12:44:08.347 回答